Software
Deeson Online: Debugging Drupal with Drush in real time with PHPStorm and Xdebug
I am going to explain how to setup your development tools so that you can debug Drush commands in real time, as they run. I've tested these instructions on Mac OSX.
In a previous blog post I outlined how to configure PHPStorm and Xdebug so you can step through the code of a webpage as it is executed. This allowed you to set breakpoints and inspect the value of variables at specific points in the code. The same can be done for Drush commands. You will need to have configured your PHPStorm as described in the first blog post.
Add Drush code to PHPStormDrush can be added to PHPStorm as an external library. This will allow you to view the Drush code within PHPStorm so you can add break points to it later.
1. In the project pane, double click external libraries, which appears at the bottom of the directories.
2. Click the plus button in the bottom left of the PHP popup window. Now use the file brower to find where Drush is installed on your system. Select the folder and click OK and OK again. Drush should now be listed as an external library.
3. Click the telephone button in PHPStorm so it starts listening for executed code.
Configuring Drush to tell PHPStorm it is runningIn the command line where you normally run your Drush commands, first type the following command and press enter:
export PHP_OPTIONS="-dxdebug.remote_autostart=On -didekey=PHPSTORM -dremote_host=localhost -dprofiler_enable=1"
Now, when you run a Drush command it will be picked up by PHPStorm.
If you have put in a breakpoint, then execution of the command will pause at that point. For example, open index.php in your project and place a breakpoint next to a PHP function as shown in the image. If you click between the line number and the code, a red spot will appear.
Now, at the same command prompt where you entered the export command above, run a Drush command, for example:
drush cc allPHPStorm should open at the breakpoint. Now you can step through the code in the same way as before.
Executing the export command before running Drush commands will be a little time consuming. I recommend you add this to your .bashrc file or .bash_profile file in your home directory so it's available as soon as you open your terminal.
To stop PHPStorm opening every time you run a Drush command, simply press the telephone button again and hang up.
Robert Douglass: Drupal Coder vs Themer: The ultimate DrupalCon trailer?
Campbell Vertesi and Adam Juran are at the top of their game when it comes to coding and theming Drupal. They're also deeply involved in and shaped by their study of martial arts. That's what makes this DrupalCon trailer so very good: they make an analogy for working with Drupal that pits the coder vs the themer, and it becomes the basis of their whole DrupalCon session. This trailer (which is meant to get butts into seats next week in Amsterdam), is a tribute to B-grade Kung Fu movies, and is true to Drupal's tradition of approaching technology with a good dose of levity and humor. I, for one, really enjoyed working with Campbell and Adam while shooting this, and am looking forward to their session.
Tags: Drupal PlanetDrupalDrupalConModules Unraveled: 119 The Classy Base Theme for Drupal 8 with Scott Reeves and David Hernandez - Modules Unraveled Podcast
- How did this all get started? and where does the “banana” come from.
- From Morten: 2 years ago at BadCamp John Albin was holding a plastic sword from the pirate fest the day before. It was known as the sword of consensus. At DrupalCon Austin Morten had a banana that he was using to point to people and ask “So can we agree on X?”. That is how it became the banana of consensus. It was basically a pointing stick.
- Technically, what is the change.
- Moving classes from core to a base theme called Classy.
- Multi-phased approach.
- Phase 1, move classes out of preprocess functions and into the core templates.
- Create the Classy base theme.
- Phase 2, copy the core template with classes to Classy, remove the classes from core.
- Why do themers need this.
- Better options
- Not everyone wants the same markup (themer survey)
- Avoiding php
- No time wasted undoing core.
- What work has been done, what is left.
- Preprocess changes (phase 1) far along.
- Classy is RTBC, waiting for Dries to approve.
- Phase 2 to start at or just after Amsterdam (don’t need to wait until phase 1 is 100% complete)
- Chance of failure?
- Changes have to be in by RC1.
- Who to thank?
- joelpittet, mdrummond, crowdcg, lauriii, alexpott!
- Are there any other theme layer changes to look forward to that have come about because of the banana consensus?
- addClass/removeClass is in, what about setAttribute/removeAttribute? Similarities to jQuery make this (hopefully) more approachable for frontend developers.
- Any other theming changes not related to banana?
- Improved menu theming - menu.html.twig using a Twig macro
- What it means for themers. What it means for developers.
- Preprocess is still there so contrib can add classes if necessary - but is it necessary? Could it be done as a data- attribute?
Patrick J Waters: How to programmatically load panel pages from the database and include panel pages stored in code in Drupal 7
After hours of munging through ctools and page manager module code I figured out how to load enabled panel pages programmatically in code.
Mediacurrent: How Much Documentation is Enough?
Question: Who should be asking "How much documentation is enough?"
Answer: Everybody. Developers, Themers, Managers, CEO’s. Everyone in Software Development.
Acquia: Open source Drupal and government in the UK - 2014
Impressions and Acquia's presentation from the 2014 Government ICT 2.0 conference in London.
Drupal Association News: There’s no time like the present to build your Drupal career
More than 80% of employers we recently surveyed plan to hire Drupal talent within the next six months. There’s no better time to try to get into Drupal than the present — which is why we’ve launched Drupal Jobs.
To answer many of the questions we regularly hear about starting a Drupal Career, we’re reposting some information about the Drupal job market, generously provided by our friends Mike and Gwendolyn Anello over at DrupalEasy.
“It’s exciting to me that we have a community that has such demand for talent,” says Gwen Anello. “When it comes to the power of Drupal, the community isn't just window dressing— there are a lot of people full of true willingness to help and work together to move the Drupal project forward. I don’t know of any other career path where there is something as strong as the Drupal community that people can rely on for help."
What’s the big deal?Drupal is in demand for all kinds of websites. There are stories every day about organizations implementing or migrating to Drupal (read how NASA is saving millions by moving to Drupal and the cloud). All this demand for websites means talent is in high demand as well.
Additionally, Drupal 8 is in the works. It will dramatically improve Drupal's design capabilities, provide better support for responsive design for mobile devices, and include improved HTML5 and multi-lingual capabilities. Upgrades under the hood will allow Drupal to provide better personalization services, an improved content administration interface, and modern configuration management control.
There were more jobs posted in 2013 than attendees at DrupalCon AustinYou read that right. Even without the predicted growth of Drupal adoption worldwide, the current demand demonstrates huge opportunity for those choosing the Drupal path. According to Drupal Easy, in 2013 there were 2,700 Drupal-related jobs listed on groups.drupal.org Jobs, 2,800 listed on Indeed by employers, and another 1,100 listed by recruiters. The cherry on the cake: based on recent research by Nancy Stango of Blink Reaction, the national average for web developers in Drupal is more than $87,000 USD per year.
It’s not just a jobWork in the Drupal world often extends into specialties, support positions, business size and lifestyles. Opportunities abound for those in every space from freelancers to executives to coders to graphic designers. The Drupal community is not just developers servicing enterprise clients: it welcomes entrepreneurs, Fortune 500 companies, small Drupal shops, contractors, consultants and every specialty and support position from recruiting to accounting.
How do I get started?The first important step, according to Mike Anello of DrupalEasy, is to make sure you understand what is ahead, and are well equipped for it. The nature of Drupal as an open source framework generally means keeping up with the technology and the community, so committing to stay engaged is key. Mike cites five traits you'll need to be successful, regardless of your tech savvy:
- Self-motivation
- Discipline
- Organization
- Humility
- Generosity
Depending on your personality and the depth of your IT knowledge, you'll have to decide how you are going to get the education you need to succeed. There are a plethora of resources and training available, so choose one, or combine them to ensure you get what you need in a way that makes you comfortable. Training options include:
- Self-paced, such as Build-a-Module and Drupalize Me
- Instructor-led workshops, found at places like Blink Reaction, Acquia, and DrupalEasy
- Mentored learning, like Global Training Days or DrupalCon Training and Sprints.
- Career training, for those who want a formal, comprehensive, instructor guided program. A number of organizations such as DrupalEasy offer courses like these.
Most of us come to Drupal with some core skills, so consider taking the Drupal path that will best leverage your existing interests and skills, These niches include:
- Front-end development
- Back-end development
- Data Migration
- Theming
- Project Management
- Training
- Commerce
- Performance and Scalability
- Module development
- User Experience
Actively participating in the Drupal Community is as important to your Drupal Career as knowledge and experience. It’s important to understand that how you leverage the community is key to your success. Meetups, camps and DrupalCons are great opportunities to learn and contribute, not just glad-handing, card-trading chamber of commerce-esque functions. IRC is an exchange mechanism, it is not a means to just get...you have to give. Mike's four aspects of community that you need to practice for Drupal success:
- Learn
- Network
- Share
- Be (a little) selfish
Without the first three however; the fourth is not realistic. As you start out on a Drupal career path, learning and networking will be the prevailing activities, and is made possible by the good souls a bit further down the path. Hop on IRC and go to some meetups to get technical support, meet your peers, and build relationships. Once you get to the point where you can share, (it will happen sooner than you think!) answer some questions, present at a meetup or volunteer at your local/regional camp. With all of these karma points, you can start leveraging all the learning, networking and sharing you’ve done for some personal benefit. The key, again, is to take less than you put in – all in the spirit of community.
Ultimately, when it comes down to it, all you need to get started in the Drupal world are a computer, an open mind, and a willingness to help others and be helped in turn. What you do with the rest is up to you!
For more information on getting your Drupal career started, check out Drupal Easy's resources page. To get started on Drupal Jobs, login to or register your account.
Image courtesy of fgr62 on Flickr.
Acquia: Composer – Dependency Management in PHP
Today's article is all about a fabulous tool for dependency management in your PHP projects. Composer solves the problem where you add a library to your application but it depends on this specific version of some other library, which also uses the yaml stuff, which needs ... you get the picture!
Composer helps us keep track of what external code our application relies on, and get it installed the right way on every copy of that application. This article will show you how to use Composer successfully in your own projects.
Phase2: Come Hack With Us On Distributions At DrupalCon Amsterdam!
Here at Phase2, we believe that Drupal distributions have the potential to shift the playing field. However, one of the Drupal projects biggest challenges right now is awareness of its capabilities and value. As Tom Erikson discusses in his AMA a couple months ago:
“For Drupal to remain relevant we need to ensure that it competes well in [the market], and that the marketing and awareness of Drupal … improves dramatically.”
We see specialized distributions as a vehicle to market Drupal in an engaging and accessible way to the market. The usability, ease of setup, and specialization inherent in distributions helps Drupal compete in the greater software market. As we push to make user experience a major asset in Drupal 8, we have an amazing opportunity to build on the progress already made in so many of the distributions out there. Phase2 has recently made usability and UX improvements for Open Atrium and OpenPublic, and we are excited to see where we can take Drupal distributions next, as a community, laying the groundwork for Drupal 8.
Phase2 has always believed it is vital for Drupal distributions to be community-driven endeavors. For this reason, I am excited to announce that Phase2 will be kicking off DrupalCon Amsterdam with a Distribution hackathon!
The hackathon will start at 3PM on Monday September 29th, and will continue throughout the afternoon and into the night. We’re asking folks to get together and hack on install profiles, distributions and Apps to move Drupal forward. There is a lot of really awesome sprinting happening at DrupalCon already and we look forward to participating with the Drupal community. If you are interested in learning more about the Phase2 hackathon at DrupalCon Amsterdam, check out the program page and agenda to register for a spot!
Digett: 4 Challenges with a Webform Project, Part I
I like Javascript. There, I said it. It’s all out there floating across the internet, and no doubt my kids will mock me for it twenty years from now when they’re busily developing code via direct brain-link. For now, though, I find it to be a remarkably versatile problem solver for things that just aren’t quite handled by the default behavior of your favorite framework or CMS.
Drupalize.Me: How to Add Responsive Tables to Content in Drupal 8
It is claimed that "every HTML table in Drupal 8 is responsive." What this actually means is that tables in the Drupal 8 admin UI are responsive and also that in Views, if you select a Table format, you have the opportunity to prioritize columns that will hide upon reaching narrower breakpoints. The strategy that is employed is that of adding "priority" classes to table cells and a "responsive-enabled" class to the table tag. At a tablet breakpoint, the "priority-low" table columns will hide and at the mobile breakpoint, the "priority-medium" columns will also not display.
Mogdesign: The next chapter of Mogdesign
Wunderkraut blog: Healthy sprinting at DrupalCon Amsterdam
Fresh fruits waiting for you in the sprint room, thanks to @Wunderkraut! pic.twitter.com/rGxASqlsax
— drupalaton (@drupalaton) August 7, 2014@lewisnyman @drupalaton @Wunderkraut Thank you so much for organizing that; it's very, very much appreciated! :)
— Wim Leers (@wimleers) August 8, 2014 Bigger and better at DrupalCon Amsterdam For DrupalCon Amsterdam, we're going to take all the feedback and lessons we learned at Drupalaton and put it to good use. WunderKraut are sponsoring the snacks again on the pre-and-post conference sprints (excluding Friday). The pre-and-post sprints are taking place in Berlage workspace and we have more control over the food we are able to provide. I'm aiming for more packaged snacks and store bought fruit, rather than the buffet style fruit salad and mixes supplied in Balaton. If you have any suggestions or recommendations of nice snacks that you'd like to see, please let me know in the comments or on twitter.Last Call Media: NERDSummit 2014: A revolution in our DrupalCamp!
(The following is an except from a much larger essay, in progress, titled We Sold Drupal to the World.)
Regarding our community we can ask ourselves the following questions:
Are our events too intimidating?
Here in the New England web developer community, we tried to answer these questions with a new web developer conference. We called it the New England Regional Developer Summit (NERDSummit). The first thing we did was we made the scope wide, covering multiple technologies rather than focusing on just one. So, for example, instead of just focusing on Drupal, the conference included the WordPress and Joomla! communities, as well as many general topics in things like Ruby, Rails, Django, Python, Node.js etc.
The choice to expand our camp's scope reduced the intimidation factor common to these types of events. An event about a single technology is likely to feel to have a large number of attendees who know the technology very well. Rather than feeling like it will be a larger number of people to help one who is learning, a beginner is likely to feel instead that they will be getting in the way and frustrating others with their inexperience. An event about multiple technologies changes this dynamic in that the knowledge hierarchy becomes distributed and irrelevant as a hierarchy at all. A group with expertise in one of the event’s technologies, for example, could in fact be a small influence on the event as a whole.
Are our events inclusive enough?
Diversifying the event’s content also made the event more inclusive. An event about a single technology presupposes that one has “chosen” that technology to some extent. It excludes, typically unintentionally, people who have not chosen it and are still deciding and, intentionally, people who have chosen another technology. By leaning more towards “something for everyone,” an event can draw more people and be a place where things are discovered and chosen.
We think people should choose what we’ve chosen, but there needs to be a place where it is actually a choice.
The point here is not to change the events that focus on a single technology, but just to say that an event that focuses on many technologies is less intimidating, more inclusive and more likely to bring new people into the industry.
Do our events champion a Code of Conduct?
For NERDSummit, we made a big deal about our Code of Conduct. We put it in places where it couldn’t be avoided. We focused on it at registration and in each day’s opening remarks. We spent time with it, as organizers, to understand it and then worked with volunteers to pass that understanding along.
There is a common fear that having a Code of Conduct in this way will lead people to believe that there are problems in the community, and that, if there are no problems, then there should be no Code of Conduct. Beside the fact that there are problems in every community everywhere, there is another angle to look at this that is very important.
Things work because we make them work.
Good consistent results take intentionality. A Code of Conduct is an example of that intentionality. It is saying, in writing, officially, how we will behave and what we will not tolerate. It is accepting and agreeing to it as a community and standing by it, adhering to it, making it real and making it work.
This is important to a lot of people. Championing a Code of Conduct makes this industry a more reasonable place to be for people who would otherwise find home elsewhere.
Are we giving our events the credit they deserve?
With career paths and fields of study, relevant to the web development industry, being non-existent in most places; our meetups, camps, summits, and conferences etc are critically important to how open source works. It is within the events that we are bringing people in and we are teaching ourselves how to thrive. We are doing it and we are doing it ok, but we need to do better.
Our events are where people are finding their way into a whole new IT career or just a new IT skill set. We need to recognize the importance our events have in making open source sustainable by bringing new talent in. To support open source better, we need to work to do our events better, we need to bring in more talent.
How did NERDSummit do with bringing more people in?
The NERDSummit is a direct expansion of its local area’s Western Mass Drupal Camp. Here are some comparisons between the 2013 camp and the 2014 summit.
NERDSummit 2014 Unique visitors: ~500
Western Mass Drupal Camp 2013 Unique visitors: ~250
This is reasonable considering the expanded scope and the length of the event going from one day in 2013 to three days in 2014.
NERDSummit 2014 Women visitors: 37%
Western Mass Drupal Camp 2013 Women visitors: 15%
NERDSummit 2014 Women speakers: 34%
Western Mass Drupal Camp 2013 Women speakers: 8%
This was a huge improvement over the year before and is pretty high for open source conferences in general. DrupalCon Austin, for example, left behind its historic 8% female conference attendance by achieving 20%.
NERDSummit additionally had 12% youth in attendance, with a subset of that taking advantage of onsite childcare.
While the area in New England where NERDSummit was held, Western Massachusetts, is fairly progressive. It’s clear that something we did worked.
We diversified the content to diversify the attendance to, hopefully, diversify the community.
Feedback so far has been overwhelmingly positive and we are collecting more organized feedback now. While we did pretty well drawing in more attendees and a better gender balance, NERDSummit was still fairly homogeneous in terms of race and class. NERDSummit 2015, and the years to come, will focus on reaching new communities in addition to further diversifying the ones already in attendance.
We hope to continue to see our efforts bringing more people into the industry, but also effecting changes that improves the number of people who stay. If open source is going to be a solution made by the world and for the world, it will need to be supported by the world, the whole world, and not just a privileged subset of the population. While some are working on solving the “talent shortage” and others are working on better recruiting, how we function as an IT community is one place where we can all take responsibility and make a big impact for the better.
Bert Boerland: Never trust data, no matter what the source is
Drupal is becoming increasingly a backend CMS. For editers so they can easy manage their content while for example AngularJSis delivering the content. Or as a backend hup combining content from multiple sources, databases and systems.
Drupal evolved towards this from a blog alike system 10 years ago, a content type with user generated comments below. Back then everybody knew that you should filter User Generated Content and stripe the HTML if you cared about the site. Many other systems up to today however do not filter UGC good enough; user signups, search input and many other ways a user can give input ot the system.
Now Drupal is talking to other systems, combining data from multiple sources, devs still need to understand that one should ***never*** trust input data, no matter if the source is another database or a user.
Because, what could possibly go wrong with just displaying this data directly or injecting it in the database? Why should you "checkplain" the TXT fields in zone of a domain? Why?
Drupal Easy: DrupalEasy Podcast 139: Vibraslap (Joshua Mitchell, Drupal Association CTO)
Joshua Mitchell (joshuami), CTO of the Drupal Association joins Mike Anello, Ted Bowman, and Ryan Price to talk about his job duties, the future of Drupal.org user profiles, the new jobs.drupal.org site and a bunch of other Drupal-y happenings.
Drupal Easy: Don’t Just Contribute Code, Contribute Coders…
It’s official. The Drupal Association just published survey results that back up just what we have all suspected: The Drupal community, even with more than a million registered at Drupal.org, is starving for Drupal talent. 92% of hiring managers surveyed confirm there is not enough Drupal talent in the market to meet their needs.
-->Drupal.org Featured Case Studies: Edukame
Edúkame is a startup dedicated to providing online emotional and educational tools for children below the the age of six. Our mission is to make the lives of parents easier: we believe that raising happier children today will make our world better tomorrow.
Edúkame started as a Wordpress blog about emotional child education. When we professionalized our project, we decided to migrate to Drupal and began selling toys and books using Drupal Commerce. Our first product was the Educabox, a specialized pack prepared by our experts with products and tools intended to help parents overcome some of the growing pains children go through (such as potty training, dealing with fears, learning to sleep alone, and so on.) Recently, we launched a premium content subscription option for parents who wish to receive a monthly digital magazine, plus a variety of other content.
On this project, Edúkame worked with a variety of partners, including:
- Neurotic, a Drupal shop in Barcelona that has been in business for more than 5 years
- SB IT Media
- SEAVTEC, a technology consulting group that specializes in system architecture, scalability, systems admin, cloud computing, and more.
Zivtech: Automation a Resounding Message at Drupaldelphia 2014
Drupaldelphia 2014 had a bunch of great sessions this year, some of which were presented by our own Zivtech team members. Howard Tyson presented How Cultivating a DevOps Culture will Raise your Team to the Next Level, a beginner level session based around building a team that has both development skills and the ability to learn more about the tools that drive team infrastructure. Jody Hamilton presented an intermediate level Mission Bike Case Study session, along with Matt Cheney, the owner of Pantheon and Mission Bicycle. Matt also served as project lead on the Mission Bicycle project. Their session showed how the project was accomplished using minimal custom code. They also showed how custom products within Drupal Commerce were built, and how PHP and jQuery were used on the site.
There were a fairly wide variety of sessions this year, but I found that the resounding message of Drupaldelphia 2014 was “Automation”.
I was able to attend a few sessions in the afternoon that I thought would be educational for me based on what we are doing at Zivtech with automation tools like Jenkins, Puppet, and Vagrant. While most of the tools we use were mentioned, it was also nice to see some new tools that we aren’t using yet--tools that could continue to help automate our development processes and reduce the amount of possible human error involved in deployment processes. One of the sessions had a great list that showed the approximate amount steps that should happen each time new code is deployed from one development environment to the next. We, as developers, should always be figuring out ways to reduce the actual amount of steps and remove the repetitive steps with automation tools.
The first session I attended was Automating distros and avoiding post distro "features hell", an intermediate level session presented by Brian Ollendyke. This session introduced me to a new tool for drush that I didn't know existed. It’s only been published for 2 months, and it’s called Drush Recipes. It provides a set of drush commands that allows you to create a .drecipe file which will allow you to call the Drush Recipe and build out an entire site with a single command. The best part about this is that you can completely build a site, even using a specific installation profile to start with, and then run a specific command to create a .drecipe file that will be able to recreate the whole site with a single command. Inside the .drecipe file are an array of drush commands that run in a big chain as the Drush Recipe. Overall I was amazed at the power of drush, and we will definitely be looking into this module to possibly work it into our automation workflows at Zivtech. There are a few Drush Recipes already created by btopro over at his repository site, Drush.recipes. You can even create your own Drush Recipes style webservice with a simple .drecipe file provided on the repository. Time to get cooking with Drush Recipes!
The second session I attended was Automate All the Things, an intermediate level session presented by William Hurley. This session reiterated on tools that we have been using and are starting to use more, such as Jenkins for hardened testing. It also touched on some open source projects that we have been testing in small batches, but have not deployed anything major with yet. Those projects included Grunt and Capistrano. We have been using Grunt on some dev lunch test projects we have been working on, but I don’t know if we have used Capistrano much. I definitely want to learn more about it, as it seems like a great compliment to Jenkins and a better solution for actually deploying Jenkins tested code than relying on Jenkins to do the job. Overall William hit on points that are good to know, and that are helping these best practices become the industry standard in the Drupal world as more and more Drupal camps and Drupalcons take place. That’s good for all of us.
For my final session of the day, I ended up going to the EntityForm session presented by tedbow. The EntityForm session was pretty interesting, as entityform takes a true entity style approach to a webform rather than just a special content type with some fields. This allows you to pull in just about any type of other entities fields into the form and include that data for display. One of the examples used was to pick a location on a map from within a survey. This was a great example, as it showed just how easy it was to pull in an openlayers map into an EntityForm and then use the map to actually allow people to enter data from that field into the form just like you would on a regular webform from the webform project. This brings up some additional complexities for clients though, so in most cases it is probably best to stick with webform if the client themselves needs to create webforms often. It also means that very large forms will take up more tables in the database, as each EntifyForm field adds a new table table in the database. It looks like EntityForm has some great form functionality that I could see us using in the right situations here at Zivtech. It’s definitely going into my personal module toolbox.
I would like to thank Zivtech for allowing their developers to go to sessions at Drupaldelphia for professional development. This year’s sessions opened my eyes, and hopefully the eyes of others on the team to some great new projects that we can use to help automate more of what we do, become even more efficient at what we do for our clients, and even help our own internal projects. I look forward to putting some of these new tools like Drush Recipes and Capistrano to work in our shop and see what we can cook up to make our workflows even better. The more we can automate in our workflows, the more actual development work we can do with our time. I think anyone on our team can get used to that. Thanks Drupaldelphia, see you next year!
Terms: drupaldelphiaDrupal PlanetBert Boerland: Corporate Social Responsibility and using Open Source
It may differ per country and continent, but for most of the regions I know of, Corporate Social Responsibility (CSR) has become a standard within corporations as a way of buying, selling and producing goods and services. We all know that resources are scarce and hence should be used for the best possible use and more important, reused when possible.
By reusing resources to produce new goods or services, we make optimal use of that what is there. This is no longer a “left" or “green" political statement but is being executed by all parties in the political and economical arena, simply because it is in the interest of the person doing so as well as all other persons. It makes economical sense to reuse resources, be good for persons, the community and the environment. Even if it was just for the tragedy of the commons or from a prioner’s dilemma point of view. For those interested in how doing good or bad impacts the group, this academic ">PDF might be a good start. If you master Dutch this TED quality keynote during a DrupalJam conference of my friend Yoast on vimeo is truly something to watch.
So it is my opinion that CSR has moved beyond empty platitudes and has become truly in the genes of people and companies. Many people think that CSR started as corporate philanthropy, a way of the rich to donate to the poor. I don't think this is true, in every revolution, there have been powers to do good for the environment, the people and the community. For example during the Industrial Revolution there was a very strong new socialism trend with taking care of the housing, commnities and villages of the workers, “The garden cities of to-morrow". Not because “the Rich" want to do good perse (“philanthropy"), but because it made sense economically; less death and diseases (less risk) and a richer and happier workforce (and new business models around this growth).
Most of the definitions I have seen of CSR have in common that it is an integral vision towards sustainable business with social responsibility in business decisions to balance the social and economic impact of the decision. That by itself is an excellent definition and one that will be supported by anyone who is been doing business. The implementation most see however is to have a policy on carbon footprint in a company or to only buy agricultural products that are produced in a sustainable way, without pesticides. All fine.
But it seems that there is a very easy way to have implementation of CSR: by using a product that is produced to be be reused, made with the knowledge of thousands and with target audience of the world. The product that is not wasting a single second of the future and not wasting a drop of the paste. Indeed, I am talking about using open source software (OSS)!
OSS is by definition made with CSR in mind, it is being produced by different people all over the globe to be reused for you and your knowledge will be direct input for making the product better, iterate on the development and implementation.
And hence, a company that is using open source has a sustainable competitive advantage by using valuable rare resource in the most optima form. Therefor I dare any company that is using software to produce goods, to take using open source software into account and into its’ Corporate Social Responsibility policy. For by using open source software, we can truly make a better world by using more knowledge and less resources.
A very healthy situation for any company.
PS: if you want more information on this vison, do visit the 12 Best Practices from Wunderkraut session at the DrupalCon Amsterdam. Or visit Wunderkraut at booth number 1 in the sponsor lounge, right by the coffee! We are part of the community that uses and make open source software. With passion.