Agrégateur de flux

CiviCRM Blog: DC Sprint - Drupal and Joomla and WordPress

Planet Drupal - mer, 17/09/2014 - 15:53

I just returned from my first CiviCRM sprint. It was called the DC Sprint, but as Jeremy has already posted, we were actually in Maryland.

As a first time attendee of a CiviCRM conference and sprint, I really did not know what to expect. I was very pleased that both WordPress and Joomla! received some real attention at the sprint and I hope we are heading to a place where CiviCRM can be truly CMS agnostic.

WordPress CiviCRM installs can now benefit from WP-CLI tools. WP-CLI is a Drush equivilant for WordPress. We were able to merge Andy Walker's port into 4.5 and Tim Otten added full API Explorer support for this. At the developer training day in DC on Saturday, we noticed an issue with civix and WordPress. This also fixed and now civix works with all CMSs without having to be directly tied to one as in the past. These two enhancements will help WordPress developers immensely.

Dana Skallman and I also worked through the unresolved tickets for WordPress. A great deal of progress has been made there, and in addition to all the new features in 4.5 users will find that the WordPress integration is better than ever.

What really made the sprint a great event were the people. We had three CMSs represented and while there was some good natured kidding going on, it is clear to me that the community is focused on the CiviCRM project and supporting Drupal, Joomla! and WordPress.

I cannot wait to see the 4.5 release and I encourage everyone to participate in the CiviCRM Community. Whether you go to a meetup,  attend CiviCon in the spring or go to the next Code Sprint, you will not be disappointed and the community will be the better for it.

Catégories: Elsewhere

cs_shadow: Locked and loaded for GSoC Reunion summit

Planet Drupal - mer, 17/09/2014 - 15:34

GSoC 2014 is over and it was a great summer for me. As a student, I lead the development of Entity Embed module for Drupal 8. I learnt a lot about Drupal 8 and the core values of Drupal community. Apart from working on my project, I also got involved with the Media Team and now I'm also trying to contribute to some of the other projects of the Drupal 8 Media initiative. It's been a fun journey with Drupal so far and I expect it to become even better.

To top it all off, I've been selected as a delegate to represent Drupal at the GSoC Reunion summit. Details at the original post on gdo. I'm absolutely delighted that I've been selected as one of the delegates given the fact that Drupal os such a big community. What makes it even better is the fact that Angie Byron, (webchick) will be accompanying me at the summit as she's the other delegate. Its going to be a great chance for me to meet her in person.

I'm all set for the summit. Visa approved, flight & hotel booked. I'm eagerly waiting for this summit and I'm extremely thankful to the Drupal community for providing me with this wonderful opportunity.

Tags: Google Summer of CodeReunion SummitgsocDrupal Planet
Catégories: Elsewhere

Code Karate: Drupal hosting solutions and service providers

Planet Drupal - mer, 17/09/2014 - 15:02

There are many different ways to host a Drupal website.

Catégories: Elsewhere

LightSky: My Thoughts on the Drupal Project Application Process

Planet Drupal - mer, 17/09/2014 - 14:54

Giving back to the Drupal community was one thing I wanted to make sure we did more of as a company. It's been a little over a year since I took ownership of LightSky and our Drupal contributions are increasing. We are actively contributing patches where we can, sponsoring local Drupal meetups and camps and even hanging out on IRC. One thing we have not done until now was to contribute a module. At some point, I would like all my development staff to contribute a module (or modules) back to the community and I figured if I was to ask this of my staff, it was only fair that I did it first. It took some time to figure out what to contribute back, but once I had an idea I was excited to get started.

My first attempt was to write a Tweet Embed module. It would create an input filter so that when you dropped a link to a tweet into it, it would embed it into the content. I spent a few weeks polishing the module and felt ready to submit it to review. After submitting it, it was discovered by an approver that there was an issue in the Twitter module issue queue to implement this exact functionality. That means this module was a no go since it would cause duplication. At the time I was frustrated, but only at myself. I should have been more diligent on ensuring that I was not duplicating functionality.

My second attempt, and the one that would be successful, was to write a module to encapsulate the LinkedIn Company API. The module would pull in shares and display them in a themeable block. I wound up writing two modules, one for the authentication and one to pull in the shares. I spent some time writing, testing and polishing and finally felt it was ready to submit.

The Review Process

The review process was immensely helpful. It is encouraged that you do a peer review of three other modules that are awaiting approval. This allows your application to move a little more quickly through the process, but I would encourage you to do it even if that is not something you are interested in. For me, the review process did a few things. One, it allowed me to see how other people were solving problems in Drupal. I've been doing Drupal development for five years or so, but there are always things to learn. It also allowed me to become intimately familiar with what is expected of your module during the review process. After I did my initial set of reviews, I found myself going back to my module and making improvements that I may have not made otherwise. 

After adding the reviews to my application issue, I started to get feedback on my module. The feedback that was given was very helpful and informative. I can confidently say that I learned a few things in the process. I got quite a few reviews of my module and each pointed out things that I should fix. At one point the reviewers asked me to contact the LinkedIn module maintainers and verify that my modules functionality was not something they intended to implement. It was not and I got the green light to move forward. From there my module sat in a RTBC state for 3-4 weeks. It was difficult during this time to remain patient, but with so many applications awaiting approval and so few approvers, this is what happens. Eventually, I was granted the ability to promote my module to a full project, and the ability to create full projects in the future.

Final Thoughts and Tips

The review process is thorough, and that is a good thing. As a community we want to make sure that the people who are submitting modules are properly vetted and that they use best practices when coding. Although there was a bit of inactivity after the module was RTBC, it was not unbearable and if anything has encouraged me to remain involved in the review process to help alleviate some of the load. The biggest tip I can give is to not only be patient, but also be open to criticism. It's a little nerve wracking to have many people comb through your code line by line, but that is the nature of open source software. The feedback they provide will help you become a better Drupal developer and I know for me it was very exciting to learn how I could do things better. One of my big stumbling blocks the first time around was the fact that I did not do enough research when determining what module to write. Make sure that the module you are submitting doesn't duplicate functionality of another module. If there is a similar module out there, create an issue asking if they intended to implement your functionality. Sometimes a patch is a better place for a piece of functionality than a module and that is how it should be. Putting in a little extra research and effort on your end early on will prevent headaches during the review process.

If contributing is something you want to do, I would encourage you to take the jump and do it. I really do believe that you get back ten times what you give to the Drupal community.


If you have not already be sure to follow us on social media or subscribe to our RSS feed and newsletter. You can also contact us directly or request a consultation
Catégories: Elsewhere

NOKUBI Takatsugu: Met with a debian developer from Germany

Planet Debian - mer, 17/09/2014 - 10:22

Last weekend, I (knok), Hideki (henrich) and Yutaka (gniibe) met with John Paul Adrian Glaubitz (glaubitz).

In the past, I had met with another Germany developer Jens Schmalzing (jensen) in Japan. He was a good guy, but unfortunately he gone in 2005.

I had an old OpenPGP key with his sign. It is a record of his activity, but the key is weak nowaday (1024D), so I stop to use the key but don’t issue revoke.

Anyway glaubitz is also a good guy, and he loves old videogame console. gniibe gave him five DreamCast consoles. I bring him to SUPER POTATO, a old videogame shop. He bought some software for Virtual Boy.

DebConf 2015 will hold in Germany, I want to go for it if I can.


Catégories: Elsewhere

Matthew Garrett: ACPI, kernels and contracts with firmware

Planet Debian - mer, 17/09/2014 - 00:51
ACPI is a complicated specification - the latest version is 980 pages long. But that's because it's trying to define something complicated: an entire interface for abstracting away hardware details and making it easier for an unmodified OS to boot diverse platforms.

Inevitably, though, it can't define the full behaviour of an ACPI system. It doesn't explicitly state what should happen if you violate the spec, for instance. Obviously, in a just and fair world, no systems would violate the spec. But in the grim meathook future that we actually inhabit, systems do. We lack the technology to go back in time and retroactively prevent this, and so we're forced to deal with making these systems work.

This ends up being a pain in the neck in the x86 world, but it could be much worse. Way back in 2008 I wrote something about why the Linux kernel reports itself to firmware as "Windows" but refuses to identify itself as Linux. The short version is that "Linux" doesn't actually identify the behaviour of the kernel in a meaningful way. "Linux" doesn't tell you whether the kernel can deal with buffers being passed when the spec says it should be a package. "Linux" doesn't tell you whether the OS knows how to deal with an HPET. "Linux" doesn't tell you whether the OS can reinitialise graphics hardware.

Back then I was writing from the perspective of the firmware changing its behaviour in response to the OS, but it turns out that it's also relevant from the perspective of the OS changing its behaviour in response to the firmware. Windows 8 handles backlights differently to older versions. Firmware that's intended to support Windows 8 may expect this behaviour. If the OS tells the firmware that it's compatible with Windows 8, the OS has to behave compatibly with Windows 8.

In essence, if the firmware asks for Windows 8 support and the OS says yes, the OS is forming a contract with the firmware that it will behave in a specific way. If Windows 8 allows certain spec violations, the OS must permit those violations. If Windows 8 makes certain ACPI calls in a certain order, the OS must make those calls in the same order. Any firmware bug that is triggered by the OS not behaving identically to Windows 8 must be dealt with by modifying the OS to behave like Windows 8.

This sounds horrifying, but it's actually important. The existence of well-defined[1] OS behaviours means that the industry has something to target. Vendors test their hardware against Windows, and because Windows has consistent behaviour within a version[2] the vendors know that their machines won't suddenly stop working after an update. Linux benefits from this because we know that we can make hardware work as long as we're compatible with the Windows behaviour.

That's fine for x86. But remember when I said it could be worse? What if there were a platform that Microsoft weren't targeting? A platform where Linux was the dominant OS? A platform where vendors all test their hardware against Linux and expect it to have a consistent ACPI implementation?

Our even grimmer meathook future welcomes ARM to the ACPI world.

Software development is hard, and firmware development is software development with worse compilers. Firmware is inevitably going to rely on undefined behaviour. It's going to make assumptions about ordering. It's going to mishandle some cases. And it's the operating system's job to handle that. On x86 we know that systems are tested against Windows, and so we simply implement that behaviour. On ARM, we don't have that convenient reference. We are the reference. And that means that systems will end up accidentally depending on Linux-specific behaviour. Which means that if we ever change that behaviour, those systems will break.

So far we've resisted calls for Linux to provide a contract to the firmware in the way that Windows does, simply because there's been no need to - we can just implement the same contract as Windows. How are we going to manage this on ARM? The worst case scenario is that a system is tested against, say, Linux 3.19 and works fine. We make a change in 3.21 that breaks this system, but nobody notices at the time. Another system is tested against 3.21 and works fine. A few months later somebody finally notices that 3.21 broke their system and the change gets reverted, but oh no! Reverting it breaks the other system. What do we do now? The systems aren't telling us which behaviour they expect, so we're left with the prospect of adding machine-specific quirks. This isn't scalable.

Supporting ACPI on ARM means developing a sense of discipline around ACPI development that we simply haven't had so far. If we want to avoid breaking systems we have two options:

1) Commit to never modifying the ACPI behaviour of Linux.
2) Exposing an interface that indicates which well-defined ACPI behaviour a specific kernel implements, and bumping that whenever an incompatible change is made. Backward compatibility paths will be required if firmware only supports an older interface.

(1) is unlikely to be practical, but (2) isn't a great deal easier. Somebody is going to need to take responsibility for tracking ACPI behaviour and incrementing the exported interface whenever it changes, and we need to know who that's going to be before any of these systems start shipping. The alternative is a sea of ARM devices that only run specific kernel versions, which is exactly the scenario that ACPI was supposed to be fixing.

[1] Defined by implementation, not defined by specification
[2] Windows may change behaviour between versions, but always adds a new _OSI string when it does so. It can then modify its behaviour depending on whether the firmware knows about later versions of Windows.

Catégories: Elsewhere

Steinar H. Gunderson: The virtues of std::unique_ptr

Planet Debian - mer, 17/09/2014 - 00:30

Among all the changes in C++11, there's one that I don't feel has received enough attention: std::unique_ptr (or just unique_ptr; I'll drop the std:: from here on). The motivation is simple; assume a function like this:

Foo *func() { Foo *foo = new Foo; if (something_complicated()) { // Oops, something wrong happened return NULL; } foo->baz(); return foo; }

The memory leak is obvious; if something_complicated() returns false, we presumably leak foo. The classical fix is:

Foo *func() { Foo *foo = new Foo; if (something_complicated()) { delete foo; return NULL; } foo->baz(); return foo; }

But this is cumbersome and easy to get wrong. Tools like valgrind have made this a lot easier to detect, but that's a poor substitute; what we want is a coding style where it's deliberately hard to make mistakes. Enter unique_ptr:

Foo *func() { unique_ptr<Foo> foo(new Foo); if (something_complicated()) { // unique_ptr<Foo> destructor deletes foo for us! return NULL; } foo->baz(); return foo.release(); }

So we have introduced a notion of ownership; the function (or, more precisely, scope) now owns the Foo object. The only way we can leave the function and not have it destroyed is through an explicit call to release() (which returns the raw pointer and clears the unique_ptr). We have smart pointer semantics, so we can use -> just as if we had a regular pointer. In any case, the runtime overhead over a regular pointer is exactly zero.

Ownership does, of course, extend just fine to classes:

class Bar { public: Foo() : foo(new Foo) {} private: unique_ptr<Foo> foo; };

In this case, the Bar object owns the Foo object, and will destroy it when it goes out of scope without having to do a manual delete in the destructor, operator= and so on; not to mention that it will make your object non-copy-constructible, so you won't get that wrong by mistake. (In this case, you could do the same just by “Foo foo;” instead of using unique_ptr, of course, modulo the copy constructor behavior and heap behavior.)

So far, we could do all of this in C++03. But C++11 includes a very helpful extra piece of the puzzle, namely move semantics. These allow us to transfer the ownership safely:

class Bar { public: Bar(unique_ptr<Foo> arg_foo) : foo(foo) {} private: unique_ptr<Foo> foo; }; void func() { unique_ptr<Foo> foo(new Foo); // Do something with foo. Bar bar(move(foo)); // ... }

Below the Bar constructor line, foo is empty, and bar owns the Foo object! And at no point, the object was without an owner; if there's no more code in the function, bar will get immediately destroyed, and the Foo object with it (since it has ownership). It also deals just fine with exception safety.

If you program with unique_ptr, it is genuinely very hard to get memory leaks. And it's much better than Java-style garbage collection; you don't get the RAM overhead GC needs, your objects are destroyed at predictable times, and destructors are run, so you can get reliable behavior on things like file handles, sockets and the likes, without having to resort to manual cleanup in a finally block. (In a sense, it's like a refcount that can only ever be 0 or 1.)

It sounds so innocuous on paper, but all great ideas are simple. So, go forth and unique_ptr!

Catégories: Elsewhere

Drupal Association News: Free Membership from InMotion Hosting

Planet Drupal - mer, 17/09/2014 - 00:10

We recently added a Featured Discount/Benefit section to the Membership page and the first benefit to be featured is a really good one.

InMotion Hosting is giving you one year of free Drupal Association Individual Membership when you buy a new hosting plan.

This is an unprecedented and generous offer that will help support Drupal Association community programs. If you have been thinking about signing up for site hosting check out the offer from InMotion.

We will rotate the Featured Benefit every month so expect more good offers to come your way. And big thanks to the InMotion Hosting team for giving back and being part of the Drupal community.

Personal blog tags: membership benefits
Catégories: Elsewhere

Ben's SEO Blog: Top SEO Factors for Drupal in 2014

Planet Drupal - mar, 16/09/2014 - 23:26

On Sept 15, 2014, Searchmetrics released their 2014 Ranking Factors Study. In it, they analyzed 10,000 search results and created correlations between characteristics of websites and their rankings. In other words, webites that rank high, do x. Sites that ranks low, do y. For this blog post, I’m leaving out things like Backlinks (factor 4, 9, 12, etc.) because - as far as I know - there just aren’t that many modules or settings that can help you with it.

Now, with all the usual caveats about correlations not equaling causation, here’s a list of their top correlated ranking factors that can be influenced with the proper use of Drupal and/or a module. (A quick note about correlations. Um...NM. Just read this.)

Factor 1: Click-Through Rate

People that click in the search engines, want to visit relevant and interesting websites.

Correlation: .65 (Pretty Strong)

Now, take this with a grain of salt. Of course sites with high rankings have a high click-through rate. They're at the top of Google. Still, there are some things you can do to increase your click-through rate and that's never a bad thing.

How to influence your website's click-through rate in Google.

Make your listing in Google as interesting as possible to make it stand out from everyone else. Use your target keyword at least once in the title (Factor 45) and in the description (Factor 40). Make sure the keyword is used as close to the beginning of the Title tag as you can (Factor 27 & 29). Google bolds words that match the search so your listing will stand out.

Module(s) that increase your click-through rate:
  • Metatag - Write great, optimized Title Tags and great Meta Descriptions (Factor 35).

  • Custom Breadcrumbs - If they’re available, Google search results will list breadcrumbs instead of the URL. It looks nicer.


  • - Highlights events or product ratings that will make your listing stand out and give you extra links in the search results.

Factor 2: Relevant terms

People search for topical content, not just specific keywords. Including keywords that are not exact or are on related topics can help your rankings.

Correlation: .34 (Weak) How to increase the number of SEO relevant terms on your Drupal website.

Think about topics and organization based on topical areas, not just keywords. Create topical silos in your site content. Write your content using a list of terms, not just a single term.

Module(s) that increase the SEO relevant terms on your site:
  • Path & PathAuto: Create paths that naturally organize your content by topical areas.

  • Taxonomy: Tag content with appropriate terms. Tags link to term pages. Term pages link to related content. That connection helps.

Factor 3: Google +1

People love to share great content so top ranking content tends to have a lot of shares. This also encompasses Facebook Shares (Factor 5), Facebook Total (Factor 6), Facebook Comments (Factor 7), Pinterest (Factor 8) Facebook Likes (Factor 10), and Tweets (Factor 11). Social is very important to SEO!

Correlation: .33 (Weak) How to increase your social shares on a Drupal website

Write great, unique, sharable content. Make it easy to share by sharing it first. (Retweets and likes are easier than sharing it yourself.)

Module(s) that increase social sharing on Drupal

By the way…if this blog post is helpful, please share it to your favorite social network! :)

(Note: Factor 4 - 18 are almost all either Linking or Social. These are very important factors that are outside the scope of this article.)

Factor 18: Number of Internal Links

Linking to yourself is a good indicator of the quality of a piece of content.

Correlation: .16 (Very Weak) How to increase the number of internal links

Link to your own great content! Use keywords in your internal links for extra credit. (factor 30)

Module(s) for internal linking on a Drupal website
  • aLinks - Use this module judiciously. For example, set up links to your taxonomy term pages for your top keywords or topics.

  • Menu - Build menus of great content. Use them throughout your site. Those links are valuable!

  • Taxonomy - As mentioned above, tag your content. Drupal automatically creates the links.

  • Solr's More Like This - Adds links to related content using Apache Solr.

Factor 20: Keywords in the Body

It’s just logical. If you want to rank for a certain term, you’ve got to have that term on the page.

Correlation: .15 (Very Weak) How to use keywords in the body

Use the target keyword once or twice in the body field of each node. Don’t write like a robot, though. That’s bad.

Module(s) to increase keyword use in the body
  • SEO Compliance Checker - Set up the rules to match these recommendations. SEO Checker will also look at other SEO-related things like use of keywords in the title or header.

Factor 21: HTML Length

Longer articles tend to rank better than shorter ones. I’m going to lump in Text Character length (factor 22), Word Count (factor 23) here as they’re practically the same correlation and meaning.

Correlation: .14 (Very Weak) How to increase HTML Length

Write longer content. (Seems pretty obvious...)

Modules(s) to help you write longer content
  • Rules or Workbench would allow you to create workflows that require certain body length.

  • Field Validation module could be set to require a certain length. Seems draconian to me but certainly possible.

Factor 24: Site speed

People don’t like to wait so don’t make them!

Correlation: .11 (Very Weak) How to increase your Drupal 7 website speed

Make your pages lean and mean. Use sitespeed testers available online such as in Google Webmaster Tools or (my favorite) in Chrome (hit command-i). Fix any problems or suggestions.

Module(s) that speed up Drupal 7


That’s it! Covering those 21 factors (7 major factors with another 14 mixed in for good measure) should be fairly straightforward for any Drupal 7 website owner. There are other factors as well but with correlations weaker than very weak, I’m just not sure they matter that much. Read about correlations here, by the way.

Miscellaneous SEO Factors and the Drupal Modules that affect them

Here’s a quick shotgun list of a lot of the remaining low-correlation factors and modules that might help.


Did I miss anything? Let me know in the comments.

Here's the full infographic if you'd like to see for yourself:

We look at the searchmetrics 2014 SEO factors and apply them to Drupal 7.drupal seo, Planet Drupal seo-ranking-factors-2014-big.png
Catégories: Elsewhere

Drupal Watchdog: Upgrading Your Modules

Planet Drupal - mar, 16/09/2014 - 23:03

Drupal's philosophy regarding backward compatibility is "the Drop is always moving". In order to create a framework that is as performant, scalable, and extensible as possible, each major release of Drupal can and will make changes, often radical changes, to its developer APIs in order to provide optimal solutions for Drupal users and developers.

To this end, Drupal 8, far more-so than any previous release, has undergone extensive refactoring under the hood. It sports an object-oriented architecture powered by Symfony components. In addition, it utilizes modern PHP (5.4 or later) best-practices, a new Plugin API that provides consistency for pluggable pieces such as blocks and image styles, a revamped and complete Entity and Field API, a new Configuration API to provide fully deployable settings, and numerous other great improvements.

The flip-side is that while a data migration path is always provided between major versions of Drupal for a site's content and users (and in Drupal 8's case, from both Drupal 6 and Drupal 7), migrating the code of contributed and custom modules is left for developers to do.

This article will therefore provide some starting points for folks trying to port their modules from Drupal 7 to Drupal 8. (If you still have Drupal 6 modules kicking around, the "Coder Upgrade" sub-module of Coder will get you a fair chunk of the way towards converting them to Drupal 7.)

Note that as of this writing, Drupal 8 is still in active development. While the hope is that by the time this article is published, Drupal 8 will be at least in beta, and the APIs relatively stable (apart from API changes necessary to fix critical issues), information here could still change prior to D8’s final release.

Catégories: Elsewhere

LightSky: Columbus Mennonite Launches with LightSky

Planet Drupal - mar, 16/09/2014 - 22:30

LightSky recently welcomed Columbus Mennonite Church to the ranks of Drupal users with the launch of their new Drupal 7 site.  Columbus Mennonite Church is located in Columbus, Ohio, and was looking for a site that would help them not only help drive their message to members of the community and welcome people with open arms, but also that could help streamline some internal processes among their congregation.  Drupal offered an excellent platform to build the Columbus Mennonite site on, giving them what they needed now, and not preventing them from growing into the future. 

While a responsive design wasn't in the works for Columbus Mennonite, careful attention was paid to how things worked and looked on devices of all sizes, and the Drupal platform provides Columbus Mennonite a firm foundation with which to add a responsive design down the road.  Columbus Mennonite's beautiful forward facing design isn't the end of what their site offers though, as we created a great members only functionality that allows them to share certain information on their site with only members.  This allows them to distribute information to their congregation without having to worry about whether or not it is appropriate for the general public to have access to.  For churches this is a much needed feature to keep the congregation in touch with each other in the digital age.  Not only is there a members only section, but LightSky was also able to streamline their worship scheduling allowing schedulers to make changes to individual responsibilities each week, while allowing the congregation to view the schedule and find out if their help is needed.

As part of this project LightSky launched the new site on Pantheon, a hosting platform that provides some of the best stability and uptime by being fine tuned for the Drupal framework.  

Catégories: Elsewhere

Mediacurrent: A Discovery Phase: Starting a Drupal Web Project Off Right

Planet Drupal - mar, 16/09/2014 - 22:10

If you have a new web project, one of the very first thoughts you probably have is ‘How much will it cost to build?’. The best tip I can give is if an agency has only received an RFP, no matter the level of details, it will not be enough to determine with any amount of accuracy how much a build will actually be.

Catégories: Elsewhere frontpage posts: GSoC 2014 Summary and Final Notes

Planet Drupal - mar, 16/09/2014 - 21:48

Google Summer of Code 2014 has triumphantly concluded for Drupal as a participating organization. We selected thirteen students ( out of fifty project proposals from around the world and twelve of the projects passed with success. Help us by reviewing each project's code (

Not only did students dedicate their summer contributing to Drupal, but most importantly they had fun. With Drupal 8 on the horizon, most projects were focused on porting modules many people will utilize everyday. Students worked on a vast array of functionality ranging from porting the Diff module with extensible new options to integrating Disqus comments in Drupal 8. As Drupal's GSoC Organization Admin I personally checked in with all projects to find busy students resolving issues no one had ever encountered and happy to be a part of our open source community. We can only hope that these talented young software engineers stick around.

Student GSoC Experiences:

"My first GSOC Experience and one of the best summers I spent in the past few years." -Umar Ahmad (

"The best part of GSoC is the opportunity to be a part of a Open Source community, which is a venture we're unlikely to explore so soon if not for GSoC and to see your hard work put into actual use." -Sachini Aparna Herath (

"Coding for such a big project as Drupal was a great honour for me. GSoC helped me to discover Drupal community and to make my summer an exciting experience." -Andrei - Marius Dincu (

Mentor GSoC Experiences:

"With GSoC, students significantly participated in getting Drupal 8 core and contrib ready. Thank you for making this happen!" - Miro Dietiker (

"This was my first GSoC as a mentor and I enjoyed it! The learning curve was quite steep for my student and I felt her pain since many of the APIs she needed were unstable and not documented. In the end she managed to "survive" the learning curve and release a working alpha version of RDF UI module (" -Stéphane Corlosquet (

"GSoC provides opportunities that are unseen in the world of Open Source industries. Drupal 8 will thrive, and partly it's due to GSoC and the influx of those students in Drupal. Thanks!" -Nick Veenhof (

"One can think that only the students learn, it's not always true. Mentors (especially with several years of industry experience) can learn enthusiasm from their students. It was great to work with Lucian." -Aron Navak (

Reunion Summit

Each year Google organizes a "Mentor Summit" after Summer of Code to help summarize the positive and negative experiences in an unconference style weekend of meetings. This year Google is organizing a "10 Year GSoC Reunion" instead of the traditional mentor summit where two delegates from each successfully participating organization are invited. Many past and present participants responded to our post to represent Drupal at the event ( Because of this we decided to select one of our top GSoC Drupal alumni and one of our best students from this summer. We're proud to select Angela Byron ( and Chandan Singh ( to represent Drupal at the 10 Year Reunion in California (

Drupal's GSoC team is delighted we're able to send our most qualified alumni to the reunion because no one else deserves this more than webchick to represent Drupal. Angie's story of starting with Drupal working on the Quiz module ( as a GSoC student almost ten years ago and becoming one of the most important people in our community is now legendary (learn more @ In an effort to repeat history, we're excited about Chandan becoming a rockstar developer pushing Drupal to the next level as a promising new contributor. Beginning by leading development of the Entity Embed module as a GSoC student (, Chandan continues to be actively involved in Drupal 8 Core development with over 25 commit mentions. It is truly amazing to review the post and commit log from a user only 6 months old ( and realize our opportunity to find multiple success stories similar to webchick and cs_shadow via GSoC.

Thank You!

A big thanks to all the students with mentors who helped make this summer a success and of course the entire Drupal community for their amazing support. Last but certainly not the least, thanks to Google for making it all possible. The entire open source community is forever in debt to the gift Google provides us with Summer of Code. Google has funded at least $66,000USD (12 students x $5500USD) to Drupal alone in 2014.

What's Next?? How Can I Help??

Next we switch our focus from GSoC into Google Code-In 2014 ( Our current need is creating task ideas for Code-In students. If you have great ideas for small tasks taking up to several hours or want to be a mentor, please update our GCI task idea spreadsheet (

GCI is a contest for high school students to contribute small tasks to open source organizations to win a trip to GoogleHQ. Our GCI organization application usually opens in October and contest runs from November to January. GCI is a great way to learn the responsibilities of being a mentor prior to GSoC. Join our GCI group ( to learn more.

It's never too early to start planning for next year's Summer of Code in 2015. Join our GSoC group ( to learn more and comment in our GSoC 2015 planning post ( and chat with us in real time in #drupal-google on Freenode. If you're attending Drupalcon Amsterdam be sure to attend our BoF ( on Wed Oct 1st at 10:45-11:45 to learn more about our initiatives in person.

Catégories: Elsewhere

Steve Kemp: Applications updating & phoning home

Planet Debian - mar, 16/09/2014 - 21:42

Personally I believe that any application packaged for Debian should neither phone home, attempt to download plugins over HTTP at run-time, or update itself.

On that basis I've filed #761828.

As a project we have guidelines for what constitutes a "serious" bug, which generally boil down to a package containing a security issue, causing data-loss, or being unusuable.

I'd like to propose that these kind of tracking "things" are equally bad. If consensus could be reached that would be a good thing for the freedom of our users.

(Ooops I slipped into "us", "our user", I'm just an outsider looking in. Mostly.)

Catégories: Elsewhere

Commerce Guys: These schools get an A+ with Drupal + Drupal Commerce

Planet Drupal - mar, 16/09/2014 - 20:13
Plenty of people have written about the tremendous potential that Drupal Commerce has to expand the capabilities of higher learning sites already running on Drupal. Colleges and Universities have overwhelmingly chosen Drupal as their CMS, and it’s a growing need for schools to use commerce functions to process a myriad of things, from registration and book sales to donations and permits. We just don’t think it makes sense to create these functions with a bolted-on commerce platform when Drupal Commerce provides such a smoothly integrated solution to serve a wide range of commerce needs at no cost. Leveraging the investment already made in knowledge, training and resources to serve commerce needs is the way to go.    These schools felt the same way.    Check out the ways they use Drupal + Drupal Commerce:     Harvard University - Uses Drupal + Drupal Commerce to sell books and other physical goods at the Harvard Art Museum website   Stanford University SLAC - Uses Drupal + Drupal Commerce to manage event registration for conferences held at the Stanford Linear Accelerator Center (SLAC).   Georgia Tech - Uses Drupal + Drupal Commerce to manage their broad offering of Professional Education courses, enabling students to select, register, and pay for their courses and streamline Georgia Tech's ability to track, manage, and report on this important revenue channel.   Emerson College - Uses Drupal + Drupal Commerce to sell both physical and digital subscriptions and individual issues of their Ploughshares and Omnibus publications.   Grinnell College - Uses Drupal + Drupal Commerce for fundraising and donations, allowing donors to select how and where their gift will be utilized through one-time or recurring gifts.   Columbia Grammar and Preparatory School - Uses Drupal + Drupal Commerce for fundraising and donations as well as ticket sales.   Ready to join the Drupal Commerce community? Plug in at   Want to share your higher learning story or learn more about how Drupal Commerce can address your needs? Talk to us   
Catégories: Elsewhere

CiviCRM Blog: Sprinting in the wilds of Maryland

Planet Drupal - mar, 16/09/2014 - 19:02

We're approaching the middle of the third day of the 2014 East Coast code sprint, situated in a bucolic farmhouse just outside of Frederick, Maryland. The location has made this sprint a little different, with some people being able to commute back and forth. In total, 14 or so sprinters have been working on webtests, improvements to CiviVolunteer, and improvements to buildkit for all platforms, which some renewed focus on Joomla and Wordpress. It's looking promising that buildkit will be fully supporting all the CMS platforms by the end of the sprint, making it even easier to contribute.

As this was my first sprint, I wasn't completely sure what to expect. In between some intense, heads-down work, we've found time for decompression as well. We've worked in great meals on the various porches at the farmhouse, great conversation around the firepit, and a spirited round of "The Greatest Game Ever." Monday also included a spirited discussion on forms strategy for Civi 5.0 focusing on usability and a robust architecture that will allow CiviCRM to integrate more seamlessly with all the CMS platforms and work in responsive design frameworks. This release is on track to provide an amazing level of capability and flexibility for developers while being the most user-focused release of CiviCRM yet.

While the work at the sprint has been focused on Civi, the time with other developers has been invaluable as well. It's been a great experience to have candid and in-depth conversations with developers on Drupal, Joomla, and Wordpress covering not only infrastructure, but also challenges and best practices. While there are plenty of conferences and events where you do effective networking, it is rare to be able to spend both work and leisure time together. Getting to work together and in person with this extended set of collegues is already providing me with a lot of tools to take back to my company and to contribute even more to CiviCRM.

If you haven't considered participating in the community, or haven't done it in awhile, it's worth a look. You can make a measurable contibution, and you'll get so much more out than you put in.


Catégories: Elsewhere

Drupal Association News: Drupal Job Market Survey 2014: Drupal Skills Continue to be in High Demand

Planet Drupal - mar, 16/09/2014 - 18:05

If you have Drupal skills, or you are with a company that designs, builds or deploys Drupal websites, the good news is: business is strong.

According to a recent survey conducted by the Drupal Association, 82% percent of employers seeking Drupal talent expect to hire within the next six months, with 40% saying they are “constantly hiring Drupal talent”.  A whopping 92% of hiring managers surveyed say the market needs more Drupal talent to meet their needs. See the infographic.  

The positions most sought after by employers are:

  • Developers
  • Themers
  • Site Builders

Why do employers need so much Drupal talent? Over 75% percent of those businesses constantly hiring Drupal talent point to business growth. 

The vast majority of Drupal talent who responded say they feel their skills are “very” valuable and that there are typically many open positions. The top criteria for job seekers are location, compensation, and whether the organization provides time to work on the Drupal project.

It’s no surprise Drupal talent is in high demand from employers. To fill their needs, employers can clearly define their requirements in order ensure the best fit, and be as flexible as possible with regards to geographic location. For talent seeking new opportunities, flexibility is also important and there are opportunities to invest time building a broad skill set with a variety of projects on their resume in order to have the best chance to land the perfect job.

For anyone considering a career in Drupal, these finding point to a bright future. 

Click the image to see the infographic.



Catégories: Elsewhere

Drupal Easy: Drupal Career Online: Pros and Cons of Acquia Dev Desktop Version 2

Planet Drupal - mar, 16/09/2014 - 17:08

Since we started our long-form Drupal Career Starter Program in 2011, we've always struggled a bit trying to find a single local Apache-MySql-PHP stack that is powerful enough for day-to-day Drupal development, easy to set up, and that works for a wide range of people new to local web development.

We're always on the lookout for a local Drupal development stack that will help to reinforce the lessons and best practices that we strive to instill in all of our students. It's pointless to teach students methods and processes that aren't typically found in the community, so being able to bring students up-to-speed as quickly as possible with things like Drush, Git, and commonly-used workflows is of the utmost importance.

Generally, we've stuck with a combination of Acquia Dev Desktop (version 1), Uniform Server, and DrupalPro, depending on each student's skill level and previous experience.

Until recently, we've always had more Windows users than Mac or Linux users (combined!), and usually didn't run into any problems until we introduced Drush, Git, and other Linux-y command line tools, at which point Mac and Linux users spent a lot of time attempting to help Windows users get Drush installed.

When Acquia Dev Desktop 2 was made available, the list of features definitely piqued our interest. Integration with Acquia Cloud is nice (similar to what Kalabox does for Pantheon), but what we were really excited about was the Drush integration.

Since we are using Acquia Dev Desktop 2 for the first time with our 2014 Fall Drupal Career Online program, we thought it would make sense to run through the pros and cons from a training perspective.


read more

Catégories: Elsewhere

Drupalize.Me: Drupal 8 Beta is So Close

Planet Drupal - mar, 16/09/2014 - 15:10
Recently, the biggest piece of news in the Drupal 8 world is that we are finally down to just one beta-blocker. This is really great, but what does it mean exactly? Well, in the big picture it means that we are very close to releasing a beta version of Drupal 8 for everyone to start playing with, and this is a major step towards getting the final release out the door.   What is a Beta?
Catégories: Elsewhere

Petter Reinholdtsen: Speeding up the Debian installer using eatmydata and dpkg-divert

Planet Debian - mar, 16/09/2014 - 14:00

The Debian installer could be a lot quicker. When we install more than 2000 packages in Skolelinux / Debian Edu using tasksel in the installer, unpacking the binary packages take forever. A part of the slow I/O issue was discussed in bug #613428 about too much file system sync-ing done by dpkg, which is the package responsible for unpacking the binary packages. Other parts (like code executed by postinst scripts) might also sync to disk during installation. All this sync-ing to disk do not really make sense to me. If the machine crash half-way through, I start over, I do not try to salvage the half installed system. So the failure sync-ing is supposed to protect against, hardware or system crash, is not really relevant while the installer is running.

A few days ago, I thought of a way to get rid of all the file system sync()-ing in a fairly non-intrusive way, without the need to change the code in several packages. The idea is not new, but I have not heard anyone propose the approach using dpkg-divert before. It depend on the small and clever package eatmydata, which uses LD_PRELOAD to replace the system functions for syncing data to disk with functions doing nothing, thus allowing programs to live dangerous while speeding up disk I/O significantly. Instead of modifying the implementation of dpkg, apt and tasksel (which are the packages responsible for selecting, fetching and installing packages), it occurred to me that we could just divert the programs away, replace them with a simple shell wrapper calling "eatmydata $program $@", to get the same effect. Two days ago I decided to test the idea, and wrapped up a simple implementation for the Debian Edu udeb.

The effect was stunning. In my first test it reduced the running time of the pkgsel step (installing tasks) from 64 to less than 44 minutes (20 minutes shaved off the installation) on an old Dell Latitude D505 machine. I am not quite sure what the optimised time would have been, as I messed up the testing a bit, causing the debconf priority to get low enough for two questions to pop up during installation. As soon as I saw the questions I moved the installation along, but do not know how long the question were holding up the installation. I did some more measurements using Debian Edu Jessie, and got these results. The time measured is the time stamp in /var/log/syslog between the "pkgsel: starting tasksel" and the "pkgsel: finishing up" lines, if you want to do the same measurement yourself. In Debian Edu, the tasksel dialog do not show up, and the timing thus do not depend on how quickly the user handle the tasksel dialog.

Machine/setup Original tasksel Optimised tasksel Reduction Latitude D505 Main+LTSP LXDE 64 min (07:46-08:50) <44 min (11:27-12:11) >20 min 18% Latitude D505 Roaming LXDE 57 min (08:48-09:45) 34 min (07:43-08:17) 23 min 40% Latitude D505 Minimal 22 min (10:37-10:59) 11 min (11:16-11:27) 11 min 50% Thinkpad X200 Minimal 6 min (08:19-08:25) 4 min (08:04-08:08) 2 min 33% Thinkpad X200 Roaming KDE 19 min (09:21-09:40) 15 min (10:25-10:40) 4 min 21%

The test is done using a netinst ISO on a USB stick, so some of the time is spent downloading packages. The connection to the Internet was 100Mbit/s during testing, so downloading should not be a significant factor in the measurement. Download typically took a few seconds to a few minutes, depending on the amount of packages being installed.

The speedup is implemented by using two hooks in Debian Installer, the pre-pkgsel.d hook to set up the diverts, and the finish-install.d hook to remove the divert at the end of the installation. I picked the pre-pkgsel.d hook instead of the post-base-installer.d hook because I test using an ISO without the eatmydata package included, and the post-base-installer.d hook in Debian Edu can only operate on packages included in the ISO. The negative effect of this is that I am unable to activate this optimization for the kernel installation step in d-i. If the code is moved to the post-base-installer.d hook, the speedup would be larger for the entire installation.

I've implemented this in the debian-edu-install git repository, and plan to provide the optimization as part of the Debian Edu installation. If you want to test this yourself, you can create two files in the installer (or in an udeb). One shell script need do go into /usr/lib/pre-pkgsel.d/, with content like this:

#!/bin/sh set -e . /usr/share/debconf/confmodule info() { logger -t my-pkgsel "info: $*" } error() { logger -t my-pkgsel "error: $*" } override_install() { apt-install eatmydata || true if [ -x /target/usr/bin/eatmydata ] ; then for bin in dpkg apt-get aptitude tasksel ; do file=/usr/bin/$bin # Test that the file exist and have not been diverted already. if [ -f /target$file ] ; then info "diverting $file using eatmydata" printf "#!/bin/sh\neatmydata $bin.distrib \"\$@\"\n" \ > /target$ chmod 755 /target$ in-target dpkg-divert --package debian-edu-config \ --rename --quiet --add $file ln -sf ./$ /target$file else error "unable to divert $file, as it is missing." fi done else error "unable to find /usr/bin/eatmydata after installing the eatmydata pacage" fi } override_install

To clean up, another shell script should go into /usr/lib/finish-install.d/ with code like this:

#! /bin/sh -e . /usr/share/debconf/confmodule error() { logger -t my-finish-install "error: $@" } remove_install_override() { for bin in dpkg apt-get aptitude tasksel ; do file=/usr/bin/$bin if [ -x /target$ ] ; then rm /target$file in-target dpkg-divert --package debian-edu-config \ --rename --quiet --remove $file rm /target$ else error "Missing divert for $file." fi done sync # Flush file buffers before continuing } remove_install_override

In Debian Edu, I placed both code fragments in a separate script edu-eatmydata-install and call it from the pre-pkgsel.d and finish-install.d scripts.

By now you might ask if this change should get into the normal Debian installer too? I suspect it should, but am not sure the current debian-installer coordinators find it useful enough. It also depend on the side effects of the change. I'm not aware of any, but I guess we will see if the change is safe after some more testing. Perhaps there is some package in Debian depending on sync() and fsync() having effect? Perhaps it should go into its own udeb, to allow those of us wanting to enable it to do so without affecting everyone.

Catégories: Elsewhere


Subscribe to jfhovinne agrégateur