Drupal Planet

Syndicate content
Drupal.org - aggregated feeds in category Planet Drupal
Updated: 5 hours 36 min ago

Drupal core announcements: BigPipe in Drupal 8.1: please test!

Thu, 01/21/2016 - 6:45am
pDrupal 8.1 is accepting new features, and a href=https://www.drupal.org/node/2469431#comment-10771132BigPipe is being proposed to be added as an experimental module to Drupal 8.1/a. BigPipe sends pages to clients in a way that allows browsers to show them much faster. It first sends the cacheable parts of the page, then the dynamic/uncacheable parts./p pIf you're interested or concerned, please give the a href=https://www.drupal.org/project/big_pipeBigPipe contributed module for Drupal 8.0.x a try/a, and even try to break it! The more confident we can be about its stability, the more likely it being part of Drupal 8.1 will be. /p
Categories: Drupal Feeds

Jeff Geerling's Blog: Configuring CloudFlare with Drupal 8 to protect the Pi Dramble

Wed, 01/20/2016 - 9:46pm
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpIn a prior post on a href=/blog/2015/constraints-home-website-hostingthe constraints of in-home website hosting/a, I mentioned one of the major hurdles to serving content quickly and reliably over a home Internet connection is the bandwidth you get from your ISP. I also mentioned one way to mitigate the risk of DoSing your own home Internet is to use a CDN and host images externally./p pAt this point, I have both of those things set up for a href=http://www.pidramble.com/www.pidramble.com/a (a Drupal 8 site hosted on a cluster of Raspberry Pis in my basement!), and I wanted to outline how I set up Drupal 8 and CloudFlare so almost all requests to a href=http://www.pidramble.com/www.pidramble.com/a are served through CloudFlare directly to the end user!/p h2CloudFlare Configuration/h2 pBefore anything else, you need a CloudFlare account; the free plan offers all the necessary features (though you should consider upgrading to a better plan if you have emanything/em beyond the simplest use cases in mind!). Visit the a href=https://www.cloudflare.com/plans/CloudFlare Plans/a page and sign up for a Free account./p/div/div/div
Categories: Drupal Feeds

Fredrik Jonsson: Running Drupal on Debian 8 with Apache 2.4, event MPM and PHP-FPM (via socks and proxy)

Wed, 01/20/2016 - 7:02pm
div class=field field-name-field-tags field-type-taxonomy-term-reference field-label-hiddendiv class=field-itemsdiv class=field-item evena href=/taxonomy/term/63 typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=apache/a/divdiv class=field-item odda href=/taxonomy/term/317 typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=php/a/divdiv class=field-item evena href=/planetdrupal typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=planetdrupal/a/divdiv class=field-item odda href=/taxonomy/term/242 typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=server/a/divdiv class=field-item evena href=/drupalpage/blog typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=drupal/a/divdiv class=field-item odda href=/taxonomy/term/218 typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=performance/a/divdiv class=field-item evena href=/taxonomy/term/100 typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=debian/a/div/div/divdiv class=field field-name-field-blog-category field-type-taxonomy-term-reference field-label-hiddendiv class=field-itemsdiv class=field-item evena href=/taxonomy/term/4 typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Development/a/div/div/divdiv class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpI’m building a new Ansible playbook for setting up web servers with Debian 8. I have always used mod_php before and it has been very stable but have some well known drawbacks. Since Debian 8 comes with Apache 2.4 and PHP 5.6 I wanted to implement PHP-FPM that seems very promising./p pWith mod_php every Apache process will need to load PHP and therefor use a lot more RAM than needed, even for just serving static content like images and css. I have been running a href=/node/1259Lighttpd as a static file server/a to mitigate this problem./p pWith event MPM + PHP-FPM a plain Apache processes will deal with all static content and hand of PHP request to separate PHP-FPM processes. This will allow a server to handle more visitors with the same amount of RAM and I can skip Lighttpd./p pI found surprisingly little information on how to get this working well for serving things like Drupal. So here are what I have found out from manuals, post on the Internet as well as my own testing./p pThis setup has not been tested in production yet! When it has I will try to remember to update this article. In local testing on a VirtualBox image with Debian 8 and 512 MB RAM it seems to work fine. I also run the same setup locally on OS X with good results./p pHere are some performance test done with ab. These doesn’t say much more than that it seems to work and most likely can handle some load./p div class=codeblockcodeab -k -l -n 1000 -c 10 -H Accept-Encoding: gzip,deflate http://xdeb.dev/br /br /Requests per second:    526.01 [#/sec] (mean)/code/div pThis was the front page of a local version of xdeb.org running Drupal 7, with page cache of course. I also tested with plain Drupal 8 and got around 300 request/sec, more or less what one would expect./p pA plain html page looks like this./p div class=codeblockcodeab -k -l -n 1000 -c 10 -H Accept-Encoding: gzip,deflate http://localhost/br /br /Requests per second:    2466.39 [#/sec] (mean)/code/div h2Installation/h2 pStart by installing needed packages./p div class=codeblockcodeapt-get install apache2 apache2-dev php5-fpm mariadb-server/code/div pYou most likely want some more php extensions as well, here are the ones I normally install for running Drupal./p div class=codeblockcodeapt-get install php5-cli php5-apcu php5-curl php5-dev php5-gd php5-imagick php5-json php5-mysql php5-mcrypt php5-twig php-pear graphicsmagick graphicsmagick-imagemagick-compat/code/div pAs suggested in a href=http://wiki.apache.org/httpd/PHP-FPMhttp://wiki.apache.org/httpd/PHP-FPM/a I will run PHP-FPM via mod_proxy_fcgi so lets activate that module./p div class=codeblockcodea2enmod proxy_fcgi/code/div pThis will automatically activate the proxy module as well since it is a dependency. I also activate auth_digest, expires, rewrite and ssl on my servers. Rewrite is needed for Drupal to get clean URLs./p h2Apache and PHP-FPM configurations/h2 pDebian by default set up PHP-FPM to listen on a unix socket and since that should perform a bit better than a TCP socket I will use that. The most important setting is “max_children”. With Drupal each PHP process will use something like 20-40 MB typically, can be a lot more for some site so you simply need to test and see./p pIf your Drupal site use 30 MB per process setting “max_children” to 10 means that PHP will use up to about 10 * 30 MB = 300 MB of RAM. A good resource for figuring out what is the best settings is this blog post a href=http://myshell.co.uk/blog/2012/07/adjusting-child-processes-for-php-fpm-nginx/Adjusting child processes for PHP-FPM (Nginx) · MYSHELL.CO.UK/a/p div class=codeblockcodelisten = /var/run/php5-fpm.sockbr /pm = dynamicbr /pm.max_children = 10br /pm.start_servers = 4br /pm.min_spare_servers = 2br /pm.max_spare_servers = 6br /pm.max_requests = 2000/code/div pThe default MPM for Apache 2.4 (at least on Debian) is event MPM and since that is the most modern and best performing MPM there is no reason not to use it. I run with default setting and that should work well for most small servers. If needed I may up the value on ThreadsPerChild but I don’t think that will be needed on my servers./p div class=codeblockcode# event MPMbr /# ServerLimit: upper limit on configurable number of processes (default = 16)br /# StartServers: initial number of server processes to start (default = 3)br /# MinSpareThreads: minimum number of worker threads which are kept spare (default = 25)br /# MaxSpareThreads: maximum number of worker threads which are kept spare (default = 75)br /# ThreadLimit: upper limit on the configurable number of threads per child process (default = 64)br /# ThreadsPerChild: constant number of worker threads in each server process (default = 25)br /# MaxRequestWorkers: maximum number of worker threads (default = ServerLimit x ThreadsPerChild)br /# MaxConnectionsPerChild: maximum number of requests a server process serves (default = 0)br /lt;IfModule mpm_event_modulegt;br /  ServerLimit             16br /  StartServers            3br /  MinSpareThreads         25br /  MaxSpareThreads         75br /  ThreadLimit             64br /  ThreadsPerChild         25br /  MaxConnectionsPerChild  2000br /lt;/IfModulegt;/code/div h2Apache vhost setup/h2 pHere we then come to the part that caused me the biggest problem. How to get PHP-FPM to only run the php files I wanted and not everything. The Apache wiki page above suggest using ProxyPassMatch but it turns out that that overrides any restrictions set in e.g. a Files/FilesMatch directive. For Drupal I want to block access to files like update.php and cron.php so another solution was needed./p pI found the solution in a post from Mattias Geniar a href=https://ma.ttias.be/apache-2-4-proxypass-for-php-taking-precedence-over-filesfilesmatch-in-htaccess/Apache 2.4: ProxyPass (For PHP) Taking Precedence Over Files/FilesMatch In Htaccess/a. His suggestion to use a SetHandle in a FileMatch directive seems to work very well./p pThis is how I set up a vhost for serving Drupal./p div class=codeblockcodelt;VirtualHost *:80gt;br /  DocumentRoot /var/www/customers/example/webbr /  ServerName example.combr /  ServerAlias www.example.combr /  ErrorLog /var/www/customers/example/logs/error_logbr /  CustomLog /var/www/customers/example/logs/access_log combinedbr /  lt;Directory /var/www/customers/example/webgt;br /    Options FollowSymLinksbr /    AllowOverride Nonebr /    Include /var/www/customers/example/web/.htaccessbr /    lt;IfModule mod_proxy_fcgi.cgt;br /      # Run php-fpm via proxy_fcgibr /      lt;FilesMatch \.php$gt;br /        SetHandler proxy:unix:/var/run/php5-fpm.sock|fcgi://localhostbr /      lt;/FilesMatchgt;br /    lt;/IfModulegt;br /    # Only allow access to cron.php etc. from localhostbr /    lt;FilesMatch ^(cron|install|update|xmlrpc)\.phpgt;br /      Require localbr /    lt;/FilesMatchgt;br /  lt;/Directorygt;br /lt;/VirtualHostgt;/code/div pNotice that I include the .htaccess file. I have set “AllowOverride None” to prevent Apache from looking for and automatically include any .htaccess files it finds. This improves performance a bit but one needs to remember to reload Apache when changes are made to the .htaccess file./p h2Extra security configurations in Apache for Drupal/h2 pDrupal put .htaccess in the files folder and some other places for security reasons. The following is an example how to add the same security configurations directly in an Apache conf file. The DirectoryMatch regex most likely needs adjustment for your directory structure./p div class=codeblockcode# Security setting for files folder in Drupal.br /lt;DirectoryMatch ^/var/www/.*/web/(.+/)?(files|tmp)gt;br /  # Turn off all options we don't need.br /  Options -Indexes -ExecCGI -Includes -MultiViewsbr /br /  # Set the catch-all handler to prevent scripts from being executed.br /  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006br /  lt;Files *gt;br /    # Override the handler again if we're run later in the evaluation list.br /    SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003br /  lt;/Filesgt;br /br /  # If we know how to do it safely, disable the PHP engine entirely.br /  lt;IfModule mod_php5.cgt;br /    php_flag engine offbr /  lt;/IfModulegt;br /lt;/DirectoryMatchgt;br /br /# Security setting for config folder in Drupal.br /lt;DirectoryMatch ^/var/www/.*/web/(.+/)?(private|config|sync|translations|twig)gt;br /  lt;IfModule mod_authz_core.cgt;br /    Require all deniedbr /  lt;/IfModulegt;br /br /  # Deny all requests from Apache 2.0-2.2.br /  lt;IfModule !mod_authz_core.cgt;br /    Deny from allbr /  lt;/IfModulegt;br /  # Turn off all options we don't need.br /  Options -Indexes -ExecCGI -Includes -MultiViewsbr /br /  # Set the catch-all handler to prevent scripts from being executed.br /  SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006br /  lt;Files *gt;br /    # Override the handler again if we're run later in the evaluation list.br /    SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003br /  lt;/Filesgt;br /br /  # If we know how to do it safely, disable the PHP engine entirely.br /  lt;IfModule mod_php5.cgt;br /    php_flag engine offbr /  lt;/IfModulegt;br /lt;/DirectoryMatchgt;/code/div /div/div/div
Categories: Drupal Feeds

Cocomore: Starting in the new year with Drupal 8 – Cocomore workshop in January 2016

Wed, 01/20/2016 - 5:00pm
pOn January 8th our developers camte together to have a Drupal 8 workshop. You can read here, what they experienced and what is new for the Frontend with Drupal 8!/p
Categories: Drupal Feeds

Palantir: The Secret Sauce podcast, Ep. 01

Wed, 01/20/2016 - 10:49am
pThis is the first in our weekly bonus podcast that deals with shorter tips and resources that will help you with some straightforward facet of your web project. It's a compliment to our monthly, long-form podcast On the Air With Palantir. That's why we call it the Secret Sauce./p pSome episodes will focus on strategy, design, metrics, or other such topics, while others will be more technical in nature. Whatever the focus, we want these to be useful for you, so we draw from our real world experience./p iframe id=audio_iframe src=https://www.podbean.com/media/player/bangz-5be74d?from=yiiadminamp;skin=105amp;postId=6022989amp;download=0amp;share=1amp;fonts=Helveticaamp;auto=0 height=100 width=100% frameborder=0 scrolling=no data-name=pb-iframe-player/iframeh5a href=https://itunes.apple.com/us/podcast/on-the-air-with-palantir/id1075348150iTunes/a | a href=http://palantir.podbean.com/feed/RSS Feed/a | a href=http://palantir.podbean.com/mf/play/jfwg5t/Palantir_TheSecretSauce_01_201601.m4aDownload/a/h5 pThis time around Allison Manley lets Larry Garfield take the mic to talk about Drupal 8, how you can prepare for it properly, and how the changes in this new version push us toward a content strategy approach. While applicable to anyone considering Drupal 8, this particular episode is mostly technical in nature and geared more toward site builders and developers./p pLook for the Secret Sauce bonus podcast released weekly on Tuesdays./p h3Want to talk Drupal 8, and see how our consulting services can get you on the right path? a href=https://www.palantir.net/contact onclick=_gaq.push (['_trackEvent', 'Podcast', 'CTA', 'Lead']);Let's schedule a time to talk./a/h3 p/p
Categories: Drupal Feeds

Drupal.org Featured Case Studies: City of Chicago, Office of the City Clerk Website

Wed, 01/20/2016 - 10:16am
div class=field field-name-field-mainimage field-type-image field-label-hiddendiv class=field-itemsdiv class=field-item evenimg src=https://www.drupal.org/files/styles/case588x306/public/viewports_chicityclerk_620x440.png?itok=oNmFDiPs width=588 height=306 alt=City of Chicago, Office of the City Clerk Website //div/div/divdiv class=field field-name-field-link field-type-link-field field-label-abovediv class=field-labelCompleted Drupal site or project URL:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=http://www.chicityclerk.comhttp://www.chicityclerk.com/a/div/div/divdiv class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpChicago’s Office of the City Clerk (“OCC”) is the most visited office in Chicago government. Citizens regularly use the OCC’s primary website to get information about how to purchase Chicago city vehicle stickers, search prior City Council agendas and legislation, and tune in for the live streaming of Chicago City Council meetings. /p pThe office is known for its technological innovation: it recently moved the purchase of Chicago city vehicle stickers to a year-round online purchasing system, replacing the nearly century-old process of having citizens stand in line once a year to purchase such stickers in person. That mission of innovation was not reflected in its old website, however. The old website was a mix of WordPress and custom PHP files, with document storage split across multiple domains. /p pOn the old site, maintenance was difficult, with simple site content changes often requiring a knowledge of HTML and CSS that OCC staff didn’t have. Additionally, the site was not easily used from mobile devices, despite the fact that nearly 50% of the site traffic came from such devices. OCC knew that it needed an overhaul for its website in order to serve the residents of Chicago for years to come./p/div/div/divdiv class=field field-name-field-module field-type-node-reference field-label-abovediv class=field-labelKey modules/theme/distribution used:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/project/feed_importFeed Import/a/divdiv class=field-item odda href=/project/corsCORS/a/divdiv class=field-item evena href=/project/security_reviewSecurity Review/a/divdiv class=field-item odda href=/project/seckitSecurity Kit/a/divdiv class=field-item evena href=/project/draggableviewsDraggableViews/a/divdiv class=field-item odda href=/project/views_datasourceViews Datasource/a/div/div/divdiv class=field field-name-field-profiles field-type-user-reference field-label-abovediv class=field-labelTeam members:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/u/marc-delayMarc DeLay/a/divdiv class=field-item odda href=/u/drupalkellytDrupalKellyT/a/divdiv class=field-item evena href=/u/gjangelogjangelo/a/div/div/div
Categories: Drupal Feeds

ActiveLAMP: Creating a deployable Docker image with Jenkins - Part 4

Wed, 01/20/2016 - 8:30am
divimg src=http://activelamp.com/images/posts/docker-vagrant.png //divpMy previous posts talked about getting your local environment setup using the a href=https://hub.docker.com/_/drupal/Drupal Docker image/a with a href=https://www.vagrantup.com/Vagrant/a. It’s now time to bake a Docker image with our custom application code within the container, so that we can deploy containers implementing the a href=http://martinfowler.com/bliki/ImmutableServer.htmlimmutable server pattern/a. One of the main reasons we starting venturing down the Docker path was to achieve deployable fully baked containers that are ready to run in whatever environment you put them in, similar to what we’ve done in the past with a href=http://packer.ioPacker/a, as I’ve mentioned in a previous post./p a href=http://activelamp.com/blog/devops/jenkins-build-docker-images/Read more.../a
Categories: Drupal Feeds

erdfisch: Drupal Business and Community Days - Der Business Part

Wed, 01/20/2016 - 8:17am
span class=field field-node--title field-name-title field-type-string field-label-hiddenDrupal Business and Community Days - Der Business Part/span div class=field field-node--field-single-image field-name-field-single-image field-type-entity-reference field-label-visually_hidden div class=field-label visually-hiddenSingle image:nbsp;/div div class=field field-media--field-image field-name-field-image field-type-image field-label-hidden img src=https://erdfisch.de/sites/default/files/Boris%20Baldinger%20-%20Sprinting.jpg width=640 height=427 alt= title=Sprinting by Boris Baldinger typeof=foaf:Image / /div div class=copyrightBoris Baldinger - https://flic.kr/p/ps8ZgK/div /div span class=field field-node--created field-name-created field-type-created field-label-hidden20.01.2016/span span class=field field-node--uid field-name-uid field-type-entity-reference field-label-hiddenspan lang= about=/users/frank-holldorff typeof=schema:Person property=schema:name datatype=Frank Holldorff/span/span div class=field field-node--body field-name-body field-type-text-with-summary field-label-visually_hidden div class=field-label visually-hiddenBody:nbsp;/div pDrupal 8, das beste Drupal aller Zeiten, hat am 19. November 2015 das Licht der Welt erblickt und nimmt zunehmend Fahrt auf. Mit dem offiziellen Erscheinen des neuen Major Release Drupals ist das Interesse daran nochmals sprunghaft angestiegen. Immer mehr Agenturen setzen nun direkt Drupal 8 für umzusetzende Projekte ein. Auch steigt die aktive Nachfrage auf Seiten der Interessenten explizit nach Drupal 8 deutlich./p pMit dem Schwung, den die Version 8 mit sich bringt, kann Drupal in Deutschland ebenfalls größeres Gewicht erlangen und wird seinen Marktanteil weiter vergrößern. Das führt auch dazu, dass Drupal im Business Umfeld weiter an Relevanz gewinnt und zudem noch mehr Agenturen und Freenlancer das System für sich entdecken./p pAus diesem Grund haben wir uns entschlossen, das neue Konzept der a href=http://drupal-business-and-community-days.de/ title=Die Drupal Business and Community Days in HeidelbergDrupal Business and Community Days/a zu starten. Drupal ist Community, ganz klar! Aber auch Business. Und beides geht zusammen./p pDer Business Teil steht unter dem Motto „Von der Akquise bis zur Nachbetreuung“. Hier werden wir die einzelnen Schritte eines Projektes betrachten. Experten werden dazu Vorträge und Workshops anbieten, und es wird viel Gelegenheit zum Informationsaustausch geben, um den Teilnehmern auf diese Art Wissen, Tipps und andere Mehrwerte zu vermitteln./p pDie Vorträge werden innerhalb von 60-minütigen Sessions Wissenswertes zu Themen wie Lead-Marketing, Hosting, Infrastruktur, Entwicklung, Qualitätssicherung, Wartung und vielen weiteren Punkten vermitteln. Der Fokus der Sessions liegt hierbei darauf, Einblicke und Anregungen zu geben und konkret Anwendbares zu vermitteln./p pIn den großzügigen Pausen zwischen den Sessions bleibt genug Zeit, sich auszutauschen und zu vernetzen. Am Sonntag gibt es Zeit und Raum für Arbeits- und Gesprächsrunden, um einzelne Punkte zu vertiefen./p pDie Experten kommen zu einem großen Teil aus der Drupal Business Landschaft, aber nicht ausschließlich! Damit stellen wir sicher, nur Fachleute zu Gast zu haben, die nicht nur wissen wovon sie reden, sondern dies auch im täglichen Geschäft praktizieren./p pDie Vorträge richten sich in erster Linien an Drupal Agenturen, Freelancer aber auch an Entscheider, (Web)Projektmanager und IT-Leiter, die planen, Drupal einzusetzen./p pInteressierte erhalten hier einen Einblick wie in die einzelnen Projektschritte ablaufen, und auch, wie die Agenturen arbeiten. Eine gute Möglichkeit, sich den zukünftigen Dienstleister, Partner, Arbeitgeber oder Kunden einmal anzusehen./p pMit dem [Business Ticket](a href=https://www.eventbrite.de/e/drupal-business-community-days-heidelberg-2016-tickets-20015311335https://www.eventbrite.de/e/drupal-business-community-days-heidelberg-2…/a Tickets für die 1. Drupal Business and Community Days] haben Sie auch vollen Zugang zu dem Community Teil um dort direkt auch aktiv an Drupal mitzuwirken oder sich mit den Entwicklern, die aus mehreren Ländern Europas kommen, auszutauschen./p /div div class=field field-node--field-blog-tags field-name-field-blog-tags field-type-taxonomy-term-reference field-label-visually_hidden div class=field-label visually-hiddenSchlagworte/Tags:nbsp;/div a href=/blog/drupalbcdaysDrupalBCDays/a a href=/blog/eventevent/a a href=/blog/dc-planetdc-planet/a a href=/blog/taxonomy/term/345/0planet/a /div section class=field field-node--field-comments field-name-field-comments field-type-comment field-label-above comment-wrapper div class=comment-form-area div class=comment-form-area--container form class=comment-comment-form comment-form action=/comment/reply/node/343/field_comments method=post id=comment-form accept-charset=UTF-8 div class=form-item form-type-textfield form-item-name label for=edit-nameIhr Name/label input data-drupal-default-value=Anonymous type=text id=edit-name name=name value=Anonymous size=30 maxlength=60 class=form-text / /div input type=hidden name=form_build_id value=form-C3Qx13Aj3rEFTlJM5gDgFOpNHiQZtHNLkMnaoAbpyQc / input type=hidden name=form_id value=comment_comment_form / input type=hidden name=honeypot_time value=1453384546 / div class=field-type-text-long field-name-comment-body field-widget-text-textarea form-wrapper id=edit-comment-body-wrapper div class=text-format-wrapper form-item div class=form-item form-type-textarea form-item-comment-body-0-value label for=edit-comment-body-0-value class=form-requiredKommentar/Comment/label div class=form-textarea-wrappertextarea class=text-full form-textarea required resize-vertical id=edit-comment-body-0-value name=comment_body[0][value] rows=5 cols=60 placeholder= required=required aria-required=true/textarea/div /div /div /div div class=form-actions form-wrapper id=edit-actionsbutton type=submit id=edit-submit name=op value=Kommentar hinzufügen/Add comment class=button button--primary form-submitspanKommentar hinzufügen/Add comment/span/button /div div class=url-textfielddiv class=form-item form-type-textfield form-item-url label for=edit-urlLeave this field blank/label input autocomplete=off type=text id=edit-url name=url value= size=20 maxlength=128 class=form-text / /div /div /form /div /div /section
Categories: Drupal Feeds

Modules Unraveled: 152 What to Do About Drupal 6 End of Life on Feb 24th 2016 with David Snopek - Modules Unraveled Podcast

Wed, 01/20/2016 - 12:00am
div class=field field--name-field-image field--type-image field--label-hiddendiv class=field__itemsdiv class=field__item evenimg typeof=foaf:Image src=https://modulesunraveled.com/sites/default/files/styles/podcast_default/public/podcast/image/David%20Snopek_0.jpg?itok=kdYu6YJq width=211 height=171 alt=Photo of David Snopek //div/div/divspan class=submitted-byPublished: Wed, 01/20/16/spandiv class=field field--name-field-podcast-file field--type-file field--label-hiddendiv class=field__itemsdiv class=field__item evendiv class=mediaelement-audioaudio src=http://traffic.libsyn.com/modulesunraveled/152_What_to_Do_About_Drupal_6_End_of_Life_on_Feb_24th_2016_with_David_Snopek_-_Modules_Unraveled_Podcast.mp3 class=mediaelement-formatter-identifier-1453280779-0 controls=controls /audiodiv class=mediaelement-download-linka href=http://traffic.libsyn.com/modulesunraveled/152_What_to_Do_About_Drupal_6_End_of_Life_on_Feb_24th_2016_with_David_Snopek_-_Modules_Unraveled_Podcast.mp3Download this episode/a/div/div/div/div/divdiv class=field field--name-body field--type-text-with-summary field--label-hiddendiv class=field__itemsdiv class=field__item even property=content:encodedh2Drupal 6 End of Live/h2 ulliWhat does Drupal 6 EOL mean?/li liWhen is Drupal 6’s End-Of-Life (EOL)? ulliFebruary 24th/li /ul/li liWhy is support for Drupal 6 being dropped by the Drupal project in the first place? (ie. why does our community even do this?) ulliWhat makes Drupal 6’s End-of-Life (EOL) different than previous ones (ie. Drupal 5)?/li /ul/li liWhat, specifically, will happen after February 24th? ulliAll D6 modules will be marked as “unsupported” on Drupal.org - which will mean the ‘update’ module will start telling you that ALL your modules are out-of-date/li liAlso, the status information that the ‘update’ module uses could go away at any time - so, you’ll no longer be able to rely on that in general (myDropWizard or another vendor MAY create a replacement for the ‘update’ module…)/li liThe Drupal security team will no longer be making Security Advisories (or coordinating security releases)/li liIn general, most module maintainers will no longer pay attention to Drupal 6 issues and will stop making new releases/li /ul/li liWhat should people with Drupal 6 sites do? ulliArchive the site, or/li liPlan upgrade, and/li liIf you can’t upgrade by February 24th, buy Drupal 6 Long-Term Support from one of the “official” vendors: ullihttps://www.drupal.org/node/2646980/li /ul/li /ul/li liWhat makes the “official” vendors special (vs. any other vendor)? ulliGet confidential information from Drupal security team/li liAgree to follow security team processes and release all security patches publicly/li liWere vetted by the Drupal security team/li /ul/li liHow will the Drupal 6 LTS work? ulliSame process as security team - but work done by vendors rather than security team/li liWill publish patches on the D6LTS project: ullihttps://www.drupal.org/project/d6lts/li /ul/li liLikely, but not 100% decided: ulliAnnounce new patches on the D6LTS issue queue/li liMake new Pressflow 6 releases with the Drupal core patches/li /ul/li /ul/li liSo, can the community get this without working with a vendor? ulliYes!/li liBut each vendor only supporting those modules their customers depend on/li liAnd what about security issues that hackers find first?/li /ul/li liWhat does myDropWizard.com do? And how is your offer different than the other vendors? ulli“myDropWizard.com provides 24/7 support and maintenance from Drupal experts for a fixed monthly fee. We keep your site online, up-to-date and secure!”/li liOur Drupal 6 Long-Term Support offer: ullihttp://www.mydropwizard.com/drupal-6-lts/li limaking security fixes/li lifixing bugs/li liperforming one-off maintenance and support tasks on request/li ligetting your site back online in the case of an outage, and/li liremediation if your site gets hacked./li /ul/li liBasically, keep your site online and secure until you’re ready to upgrade - and we can help with a D7 or D8 upgrade as well/li /ul/li liTechnical questions about how we do what we do?/li liYour offering includes a whole bunch of stuff! Why don’t you have a “security updates only” offering?/li /ul/div/div/divdiv class=field field--name-field-items-mentioned field--type-link-field field--label-abovediv class=field__labelEpisode Links:nbsp;/divdiv class=field__itemsdiv class=field__item evena href=http://drupal.org/u/dsnopek rel=nofollow target=_blankDavid on drupal.org/a/divdiv class=field__item odda href=http://twitter.com/dsnopek rel=nofollow target=_blankDavid on Twitter/a/divdiv class=field__item evena href=http://www.mydropwizard.com/drupal-6-lts rel=nofollow target=_blankmyDropWizard.com/a/divdiv class=field__item odda href=https://modulesunraveled.com/support%40mydropwizard.com rel=nofollow target=_blankEmail myDropWizard/a/divdiv class=field__item evena href=https://www.drupal.org/project/d6lts rel=nofollow target=_blankD6LTS Project/a/divdiv class=field__item odda href=https://www.drupal.org/node/2646980 rel=nofollow target=_blankD6 Long-term-support Official Vendors/a/div/div/divdiv class=field field--name-field-tags field--type-taxonomy-term-reference field--label-abovediv class=field__labelTags:nbsp;/divdiv class=field__itemsdiv class=field__item evena href=/tags/drupal-6 typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Drupal 6/a/divdiv class=field__item odda href=/tags/security typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Security/a/divdiv class=field__item evena href=/planet-drupal typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=planet-drupal/a/div/div/div
Categories: Drupal Feeds

DrupalCon News: Join us at the sprints

Tue, 01/19/2016 - 4:17pm
div class=field field--name-body field--type-text-with-summary field--label-hiddendiv class=field__itemsdiv class=field__item evenpimg alt=Comic about sprinting at DrupalCon src=/sites/default/files/Comic%20Strip%20Jan.jpg style=width: 800px; height: 289px; //p pIf you’ve been using Drupal for more than a day, chances are that you’ve benefitted from some of the work done at DrupalCon sprints. Some of the most important breakthroughs for the project are made by sprinters at DrupalCon, and attending sprints is a great way to give back to the project you love./p/div/div/div
Categories: Drupal Feeds

Agaric Collective: Moving towards a service oriented architecture

Tue, 01/19/2016 - 2:25pm
p class=leadIn this installment of our case study about working with long term projects I will explain the architectural decisions made by our client, a href=http://www.zeit.de/ title=ZEIT ONLINEZEIT ONLINE/a, regarding the relaunch of their digital subscription platform. Please refer to a href=http://agaric.com/blogs/working-long-term-projects title=Working with long-term projectspart 1/a of this series for basic information about the project and a discussion of how to deal with the evolution of programming languages and operating systems./p pEarly on our client had decided to split up the platform into separate services that communicate via HTTP. This would allow them to develop those components using the most suitable technology for each, as well as allowing the services to progress more independently. The existing platform already used a separate service for authentication and storing user profile information. We took it from there and worked with the client to take it a step further./p pFirst we identified the major logical components of the platform:/p ulliUser accounts/li liProduct presentation/li liCheckout/li liOrder management (including data exchange with fulfillment provider)/li liContent delivery (via HTTP and E-Mail)/li /ulpWhen considering how to divide the whole into services, we found it helpful to elaborate on the interfaces between them. The overall idea here is similar to what is accomplished by writing tests first: by grasping how you will consume an interface, it helps define the implementation more succinctly. In order to keep it simple we imposed a constraint on communications between services: When responding to any request, a service must not depend upon another HTTP request to a third party. That way developers would not have to deal with complex dependencies in their development environment and errors would be easy to locate./p pAnother important consideration was not to do too many things at the same time. Drupal 6 was fulfilling the roles of delivering content and product presentation to the client's satisfaction and the functionality was provided by a small amount of modules. As an upgrade of those parts to Drupal 7 would be straight forward, that was the direction taken for those items. A new client side order form had been developed already and was in experimental use as an alternative to the Ubercart checkout process./p pThat left the order management as a candidate for a new service. It needs to take orders from the client side order forms, store them, and send them to the fulfillment provider. It would also need to receive updates about the states of an order from the fulfillment provider. Agaric was asked to develop that component and picked a href=http://flask.pocoo.org/ title=Flask framework for PythonFlask/a as a framework. That was a subjective choice, any other technology for building web applications could have been employed as well./p pIn upcoming posts I will cover the individual components and how they fulfill the goals of the overall architecture. ZEIT ONLINE is happy with the architecture and is currently moving further along those lines./p ul class=inline lia href=/tags/drupal-planet typeof=skos:Concept property=rdfs:label skos:prefLabel datatype= class=badge badge-info p-categoryi class=icon-tag icon-white/i Drupal Planet/a/li lia href=/tags/zeit-online typeof=skos:Concept property=rdfs:label skos:prefLabel datatype= class=badge badge-info p-categoryi class=icon-tag icon-white/i ZEIT ONLINE/a/li lia href=/tags/flask typeof=skos:Concept property=rdfs:label skos:prefLabel datatype= class=badge badge-info p-categoryi class=icon-tag icon-white/i Flask/a/li lia href=/tags/architecture typeof=skos:Concept property=rdfs:label skos:prefLabel datatype= class=badge badge-info p-categoryi class=icon-tag icon-white/i architecture/a/li /ul
Categories: Drupal Feeds

Drupal @ Penn State: Implementing drupal_static on function with dynamic variables

Tue, 01/19/2016 - 11:36am
pUsing drupal_static() on your helper functions is a great habit to get into when developing your modules. Drupal static ensures that your function will only run through its logic once during the bootstrap process. Depending on your functions logic, this can start saving lots of processing time if your function is being called multiple times during bootstrap or page load./p h3Implementing drupal_static/h3 pLet's take the following function for example. Here is helper function takes a url string from the ELMSLN network and breaks it up into identifiable parts./p
Categories: Drupal Feeds

Drupal @ Penn State: Purespeed: Cache bin backends

Tue, 01/19/2016 - 11:36am
pDrupal is fantastic at caching itself (I mean, you've gotta be with a code base this hefty).  Drupal 8 will see the dawn of render cache in core which is why most metrics you see of D8 are uncached (because it's basically cheating its so fast cached). If you want to play around with a href=https://www.drupal.org/project/render_cacheRender Cache in D7/a, it can be done but still needs some work (Drupal.org actually runs Render Cache backport to handle comments in issue queues among other things)./p
Categories: Drupal Feeds

Drupal @ Penn State: Purespeed: PHP tuning

Tue, 01/19/2016 - 11:36am
pThe Buzz is all about PHP 7, and rightly so, it's pretty incredible some of a href=http://www.zend.com/en/resources/php7_infographicthe performance metrics its pulling/a even relative to Facebook's HHVM. Brad Fisher wrote about a a href=https://drupal.psu.edu/blog/post/one-liner-install-php-7-mysql-56-apache-24-drush-and-drupal-centos-7one-line installer to get up and going with PHP 7/a if you want to play around with it. But then reality sets in.../p p/p
Categories: Drupal Feeds

SitePoint PHP Drupal: Tutorial on Using Drupal 8 Plugin Derivatives Effectively

Tue, 01/19/2016 - 11:00am
pIn an a href=http://www.sitepoint.com/drupal-8-custom-plugin-types/earlier tutorial/a, we looked at the Drupal 8 plugin system and how to create our very own custom plugin type. We’ve seen that much of the functionality declared via code_info/code hooks in Drupal 7 has been replaced by these plugins. Our use case was very basic and it allowed each eminstance/em of such functionality to be declared manually via a new plugin class and associated form./p pimg src=http://dab1nmslvvntp.cloudfront.net/wp-content/uploads/2014/11/1416938561drupal8wide-1024x332.png alt=Drupal 8 logo//p pBut what if we needed such eminstances/em declared dynamically depending on some factors external to our little subsystem? For example, when declaring code_info/code hooks in Drupal 7, we can get a list of emsomething/em, loop over it and declare a new item in the returned array for each individual emsomething/em. The menu system does this in order to provide a new block for each menu that either comes with Drupal core or is later created through the UI./p pSo what about Drupal 8? We’ve seen that for each plugin of a certain type we need to declare a different PHP class. To create a new block, we need a new class. To create stronganother/strong block, we need stronganother/strong class. So where would that emlooping/em we see in Drupal 7 take place? The short answer to this is: within a emplugin derivative/em./p pIn this article we will explore the long answer to that and learn what derivates are and how we can use them. For the latter, we will build an example inside the codedemo/code module that can be found in a href=https://github.com/upchuk/d8-demo-modules/tree/master/demothis git repository/a and which should hopefully help us better understand what’s going on. For a slightly more complex example, the Menu system is great as it provides an individual block for each of its menus (similar to Drupal 7 but using plugins)./p pWhat we are going to do is actually very simple. We are going to implement basic Node Block functionality by which for all the article nodes on our site we will have a block. Ridiculous? Sure. Should we be doing this for all the nodes on our site? Definitely not! But it’s a very basic implementation meant to keep things short and demonstrate the use of the plugin derivatives./p h2 id=plugin-derivativesPlugin Derivatives/h2 pPlugin derivatives are the way through which a plugin of a certain type can be represented in the system as multiple instances of itself. In other words, a plugin can reference a deriver class which is responsible for providing a list of plugin definitions that are based on the initial plugin (start from the same base definition) but have slightly different configuration or definition data. The codeSystemMenuBlock/code we referred to above is a great example. It’s a single plugin which has as many derivatives as there are menus on the site./p pTo go a bit deeper, when a list of all the plugins of a certain type is requested, the plugin manager uses its discovery mechanism to load all the plugins of this type. If that mechanism is decorated with the codeDerivativeDiscoveryDecorator/code, the manager will be able to also retrieve derivatives. In order to do this, the derivative discovery looks for a deriver class on each plugin and, if it finds one, asks it for this list./p pemContinue reading %a rel=nofollow href=http://www.sitepoint.com/tutorial-on-using-drupal-8-plugin-derivatives-effectively/Tutorial on Using Drupal 8 Plugin Derivatives Effectively/a%/em/p
Categories: Drupal Feeds

Acquia Developer Center Blog: Drupal 8 Module of the Week: Services

Tue, 01/19/2016 - 9:17am
div class=field field-name-field-author field-type-entityreference field-label-hiddendiv class=field-itemsdiv class=field-item evenReena Leone/div/div/divdiv class=field field-name-field-blog-image field-type-image field-label-hiddendiv class=field-itemsdiv class=field-item evenimg typeof=foaf:Image src=https://dev.acquia.com/sites/default/files/styles/blog__190_x110_/public/blog/drupal_8_logo_isolated_cmyk_72_2.png?itok=rENgqk0k width=140 height=85 alt=drupal 8 logo //div/div/divdiv class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpemEach day more Drupal 7 modules are being migrated over to Drupal 8. In this series, the Acquia Developer Center is profiling some of the most prominent, useful modules that have crossed the chasm. This week: a href=https://www.drupal.org/project/servicesServices/a./em/p pa href=https://www.drupal.org/u/kylebrowningKyle Browning/a, Drupalist since 2006 and Technical Consultant at Acquia, provides some insight on this Top 150 Drupal module he maintains./p pstrongWhat does the Services module do?/strong/p/div/div/divdiv class=field field-name-field-blog-tags field-type-taxonomy-term-reference field-label-inline clearfixdiv class=field-labelTags:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/tags/services typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=services/a/divdiv class=field-item odda href=/tags/drupal-8 typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=drupal 8/a/divdiv class=field-item evena href=/tags/acquia-drupal-planet typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=acquia drupal planet/a/div/div/div
Categories: Drupal Feeds

Out About On The Third Rock: #DPSX Jan 2016 meet up – Drupal Distribution for local government

Tue, 01/19/2016 - 7:40am
Our January meet up was in the making since the #DPSX BoF at DrupalCon Barcelona in September 2015, the sign up for the 13th Jan event was great but logistical challenges mid December left quite a few folks confused. In retrospect the meet up needs a permanent abode, if you’d like to host the next [#8230;]
Categories: Drupal Feeds

Drupal core announcements: Work on Migrate UI, frontend testing, bug fixes, and more for Drupal 8.1.0

Tue, 01/19/2016 - 7:35am
pDrupal 8.1.0 will be released on April 20, 2016, so the a href=https://www.drupal.org/core/release-cycle-overview#minorbeta phase for Drupal 8.1.x is coming up soon/a! strongWe have until February 24 to make additions for Drupal 8.1.0/strong. (After that, new additions will go toward 8.2.0 instead, which is currently planned for release in October.)/p pOur priorities for 8.1.x improvements are an experimental Migrate user interface, automated frontend testing, and most importantly bug and usability fixes./p h3Migrate user interface/h3 pMigrate is in core as an experimental module in Drupal 8.0.x, but it does not provide a user interface. a href=https://www.drupal.org/node/2281691The next step is to add the user interface/a as a core experimental module a href=https://www.drupal.org/project/issues/search?projects=amp;project_issue_followers=amp;status%5B%5D=Openamp;issue_tags_op=%3Damp;issue_tags=Migrate+criticalas well as fix a few important bugs/a, such as a href=https://www.drupal.org/node/2647470missing test coverage for the user interface/a and a href=https://www.drupal.org/node/2570529delaying migration entity saving for safer rollbacks/a./p h3Frontend testing/h3 pAs we use more and more frontend components, we need to ensure that our frontend implementations are tested as well as we already test our backend. There were some a href=https://www.drupal.org/node/2232271prior steps introduced in Drupal 8 towards using Behat for frontend testing/a, and a href=https://www.drupal.org/node/2580007infrastructure support is almost ready/a. However a href=https://www.drupal.org/node/2469713there is more to do/a./p h3Bug and usability fixes/h3 pThere are currently a href=https://www.drupal.org/project/issues/search/drupal?project_issue_followers=amp;status%5B%5D=1amp;status%5B%5D=13amp;status%5B%5D=8amp;status%5B%5D=14amp;status%5B%5D=15amp;status%5B%5D=4amp;priorities%5B%5D=300amp;categories%5B%5D=1amp;version%5B%5D=8.xamp;issue_tags_op=%3Dover 500 major bugs/a filed against Drupal 8 branches. The stability of Drupal 8 is always a top priority, so help with these major issues by helping create and test patches, as well as testing to determine if the issues are still relevant. a href=https://www.drupal.org/project/issues/search/drupal?project_issue_followers=amp;status%5B%5D=1amp;status%5B%5D=13amp;status%5B%5D=8amp;status%5B%5D=14amp;status%5B%5D=15amp;status%5B%5D=4amp;categories%5B%5D=1amp;categories%5B%5D=2amp;categories%5B%5D=3amp;categories%5B%5D=5amp;version%5B%5D=8.xamp;issue_tags_op=%3Damp;issue_tags=UsabilityUsability issues/a and a href=https://www.drupal.org/project/issues/search/drupal?project_issue_followers=amp;status%5B%5D=1amp;status%5B%5D=13amp;status%5B%5D=8amp;status%5B%5D=14amp;status%5B%5D=15amp;status%5B%5D=4amp;categories%5B%5D=1amp;categories%5B%5D=2amp;categories%5B%5D=3amp;categories%5B%5D=5amp;version%5B%5D=8.xamp;issue_tags_op=%3Damp;issue_tags=Contributed+project+blockercontributed project blockers/a are also especially important./p
Categories: Drupal Feeds

Yuriy Gerasimov: Visual testing for Migrations

Tue, 01/19/2016 - 3:36am
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedh2Testing stale designs/h2 pUsually visual testing is very effective when website has stable design that should not be broken./p pThere are projects the whole idea of those is to keep design the same but to migrate the content to new platform. This is where visual regression testing can help a lot to identify very fast what pages are not yet complete and which ones are 100% accurate and can be shown to client./p p /p h2Real life example Migrations/h2 pConsider the following example. We had a project where we needed to migrate from custom written CMS to Drupal 8 and we had to keep designs as they are. Because of the nature of the older CMS migration process was most complex part of the project. Legacy system was page based with possibility to place multible blocks around each page. In Drupal we had to migrate each block separately and place them in similar way on pages./p pSo our strategy during migration was to tackle low hanging fruits first. In this way we were able to migrate some of pages pretty quick and then evaluate more complex scenarios./p p /p h2Visual testing of migrated page/h2 pThe moment we were able to migrate all blocks on one page including its URL we were able to start using visual testing to find differences and fix them./p pimg alt= src=http://backtrac.io/sites/default/files/diff-optimized.gif //p pSo we have quickly identified that our styles are little bit off, breadcrumbs are missing and header and footer menu items were not migrated fully./p pNow we can run this test as often as we like and develop migration and styles of this page till they match exactly. This is something like Test Driven Development when first you write failing test and then implement code to make test pass. This is pretty much the same. We compare two pages and work on migrated on till it matches 100%./p pPlease share your thoughts about this way of using visual regression testing. Do you know any other interesting ways to use it? Please let us know in comments below./p pRegister at a href=http://backtrac.iobacktrac.io/a to try the tool yourself./p piThis is a cross post from a href=http://backtrac.io/blog/visual-testing-migrationshttp://backtrac.io/blog/visual-testing-migrations/a/i/p /div/div/divdiv class=field field-name-field-tags field-type-taxonomy-term-reference field-label-abovediv class=field-labelTags:nbsp;/divdiv class=field-itemsdiv class=field-item even rel=dc:subjecta href=/taxonomy/term/3 typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=drupal planet/a/div/div/div
Categories: Drupal Feeds

InternetDevels: Using Neo4j graph database: part 1

Tue, 01/19/2016 - 2:56am
div class=field field--name-field-preview-image field--type-image field--label-hiddendiv class=field__itemsdiv class=field__item evenimg src=http://st1.internetdevels.net/sites/default/files/public/blog_preview/neo4j.jpg width=863 height=577 alt=Використання графічної бази даних Neo4j: частина 1-а //div/div/divdiv class=field field--name-body field--type-text-with-summary field--label-hiddendiv class=field__itemsdiv class=field__item evenp style=text-align: right;emLet's keep getting the most useful a href=http://internetdevels.com/services target=_blankweb development/a tips from InternetDevels developers.br //ememHere's the first blog post about Neo4j in which you will learn the basics./em/p a href=http://internetdevels.com/blog/using-neo4j-graph-database-part1Read more/a/div/div/div
Categories: Drupal Feeds