Drupal Planet

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

Drupal core announcements: Drupal 8.0.0-rc4 on Thursday, November 12, 2015

Fri, 11/06/2015 - 3:22pm
div class=field field-type-datestamp field-field-start7 div class=field-items div class=field-item odd div class=field-label-inline-first Start:nbsp;/div span class=date-display-single2015-11-12 span class=date-display-start16:00/spanspan class=date-display-separator - /spanspan class=date-display-end17:00/span America/Chicago/span /div /div /div div class=field field-type-userreference field-field-organizers div class=field-labelOrganizers:nbsp;/div div class=field-items div class=field-item odd a href=/user/24722 title=View user profile.xjm/a /div div class=field-item even a href=/user/4521 title=View user profile.catch/a /div /div /div div class=field field-type-text field-field-event-type div class=field-labelEvent type:nbsp;/div div class=field-items div class=field-item odd Online meeting (eg. IRC meeting) /div /div /div pIn preparation for the a href=https://www.drupal.org/node/2605142scheduled release of Drupal 8.0.0 on Thursday, November 19/a, we will create the final release candidate for Drupal 8.0.x, Drupal 8.0.0-rc4, on Thursday, November 12. We have added this release candidate in addition to the scheduled release windows to provide a final testing target for a href=https://www.drupal.org/core/d8-allowed-changes#rcchanges during the RC phase/a. (Unlike other release candidates, this release window will not include a 24-hour code freeze.) Plan to help test this final release candidate for bugs and regressions during the final week before 8.0.0's release!/p pFollowing RC4, we will further restrict the patches we commit to severe bugs or regressions and documentation fixes only, at committer discretion. So, if you have any a href=https://www.drupal.org/core/d8-allowed-changes#rcallowed RC changes/a underway, plan to complete them by November 12./p pThere will not be a separate release candidate on November 18. (The November 19 release date is an extension of the November 18 release window.)/p
Categories: Drupal Feeds

DrupalCon News: Session Submissions In Review

Fri, 11/06/2015 - 1:50pm
div class=field field--name-body field--type-text-with-summary field--label-hiddendiv class=field__itemsdiv class=field__item evenpThank you for all of the session submissions for DrupalCon Asia! In true Drupal fashion, we had a huge surge in the last few days/hours of session submissions to bring us to a total of 349! We are already busy working to make our selections, but check out some stats about the process in the meantime./p p /p pimg alt= src=/sites/default/files/Untitled%20Infographic.png //p /div/div/div
Categories: Drupal Feeds

Pantheon Blog: Easily Install Drush with a Phar

Fri, 11/06/2015 - 12:45pm
Composer has helped quite a lot in the area of installation and dependency management for Drupal and Drush; however, users who want to get a quick start with Drush are sometimes put off by the Composer-based install.  As of the Drush 8.0.0-rc3 release, it is now possible to install Drush using a phar. This requires fewer steps than the previous method. First, navigate to the Drush project page at https://github.com/drush-ops/drush:
Categories: Drupal Feeds

Advomatic: Upgrading to Drupal 8: through the client’s eyes

Fri, 11/06/2015 - 12:17pm
pThe Northwest Atlantic Marine Alliance (NAMA) advocates for healthy marine ecosystems. Through their site, namanet.org, they organize and promote a movement toward a thriving ocean and a just seafood system. Having helped create the original Drupal 6 site for NAMA in 2008, it’s been a rewarding experience re-architecting it in Drupal 8 (beta). The main purpose... a class=excerpt-read-more href=https://www.advomatic.com/blog/upgrading-to-drupal-8-through-the-clients-eyes title=ReadUpgrading to Drupal 8: through the client#8217;s eyesRead more #187;/a/p pThe post a rel=nofollow href=https://www.advomatic.com/blog/upgrading-to-drupal-8-through-the-clients-eyesUpgrading to Drupal 8: through the client#8217;s eyes/a appeared first on a rel=nofollow href=https://www.advomatic.comAdvomatic/a./p
Categories: Drupal Feeds

Acquia Developer Center Blog: Drupal and the Raspberry Pi

Fri, 11/06/2015 - 11:37am
div class=field field-name-field-author field-type-entityreference field-label-hiddendiv class=field-itemsdiv class=field-item evenJeff Geerling/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/acquia-raspberry-pi_0.jpg?itok=3RBUp-3- width=140 height=85 alt=acquia robot and raspberry pi //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:encodedp style=text-align: center;img src=https://dev.acquia.com/sites/default/files/blog/acquia-raspberry-pi_0.jpg alt=Acquia and the Raspberry Pi model 2 B //p pFor the past few years, I've been fascinated with credit card-sized budget computers, most especially the one that started the current revolution in hardware hacking, the Raspberry Pi./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/acquia-drupal-planet typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=acquia drupal planet/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/internet-things typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=internet of things/a/divdiv class=field-item odda href=/tags/raspberry-pi typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=raspberry pi/a/divdiv class=field-item evena href=/tags/ansible typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=ansible/a/divdiv class=field-item odda href=/tags/devops typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=devops/a/div/div/div
Categories: Drupal Feeds

InternetDevels: Drupal 8 release: great parties are on the way!

Fri, 11/06/2015 - 9:39am
div class=field field--name-field-preview-image field--type-image field--label-hiddendiv class=field__itemsdiv class=field__item evenimg src=http://st2.internetdevels.net/sites/default/files/public/blog_preview/drupal_8_release_parties.jpg width=863 height=577 alt=Drupal 8 release: great parties are on the way! //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;emGreat news about the great 8 brought to you by InternetDevels a target=_blank href=http://internetdevels.com/outsource/hire-drupal-developerDrupal team/a ;)/em/ppDrupalers, hold your breath and count to 8! This moment is approaching! “The great 8” A.K.A Drupal 8 will be finally released on November 19. Yes, officially! Yes, for sure! :)/p a href=http://internetdevels.com/blog/drupal-8-release-great-parties-are-on-the-wayRead more/a/div/div/div
Categories: Drupal Feeds

Zengenuity: October's Most Interesting New Drupal Modules and Themes

Fri, 11/06/2015 - 7:05am
pSome of the most interesting new modules and themes I saw posted to a href=https://www.drupal.orgdrupal.org/a innbsp;October:/p h3a href=https://www.drupal.org/node/2580209Views Manager/anbsp;[sandbox]/h3 pGives you vertical tabs on the Views admin page, separating Views by theirnbsp;tags./p pa href=https://www.drupal.org/node/2580209img src=http://zengenuity.com/sites/default/files/uploads/views_manager.png style=width:100%;height:auto;max-width:500px; //a/p h3a href=https://www.drupal.org/project/big_pipeBigPipe/a/h3 pAllows for speedier page loads for authenticated users. First you send the fast, cached parts of the page, then fill in the expensive parts when they arenbsp;ready./p h3a href=https://www.drupal.org/project/ampAccelerated Mobile Pagesnbsp;(span class=capsAMP/span)/a/h3 pMake your Drupal site ready for a href=https://www.ampproject.org/Accelerated Mobile Pages/a. Right now, it only adds the span class=capsAMP/span javascript library, but the plan is to serve span class=capsAMP/span pages directly fromnbsp;Drupal./p h3a href=https://www.drupal.org/node/2601614span class=capsOG/span Multiple Paths/anbsp;[sandbox]/h3 pThis module creates multiple paths for the same node using Organic Groups and Pathauto. It’s not best practice for span class=capsSEO/span, but it#8217;s nice in situations where content is posted to multiple groups, and you want the node path to reflect the group context the user is currentlynbsp;in./p h3a href=https://www.drupal.org/project/menu_link_fieldMenu Linknbsp;Field/a/h3 pProvides a field similar to the menu link form on node forms but for any entitynbsp;type./p h3a href=https://www.drupal.org/project/humanHumannbsp;Behavior/a/h3 pAn anti-bot technology that looks for mouse movement and mobile device touch events to determine if a bot is filling out anbsp;form./p h3a href=https://www.drupal.org/node/2591875Views Numeric Range Filter/anbsp;[sandbox]/h3 pIt gives you a numeric filter for Views that includes a +/- tolerance. So you can say 100 +/- 10%, and it will give you results between 90 and 110.nbsp;Neat!/p h3a href=https://www.drupal.org/node/2580615Address Field Lookup/anbsp;[sandbox]/h3 pIntegrates the a href=https://www.drupal.org/project/addressfieldAddress Field/a module with validation services to correct address formattingnbsp;issues./p h3a href=https://www.drupal.org/project/fxxFeatures Exportnbsp;Explode/a/h3 pBreaks your features into a bunch of different files, which makes it easier to see what changed when you review a git commit. For example, it breaks each view out into its ownnbsp;file./p h3a href=https://www.drupal.org/project/pistachioPistachio/a/h3 pAn example theme for Drupal 8 that shows you how to use the new features of the D8 theme system. Heavily commented to explain yournbsp;options./p h3a href=https://www.drupal.org/project/commerce_cart_linkCommerce Cartnbsp;Link/a/h3 pProvides a new field formatter for Add to Cart fields attached to Commerce products and product displays that is a simple link, rather than a form. This way users can buy a product without invoking the full Form span class=capsAPI/span on each productnbsp;item./p h3a href=https://www.drupal.org/project/crud_logspan class=capsCRUD/spannbsp;log/a/h3 pCaptures and logs all node span class=capsCRUD/span operations, #8220;create#8221;, #8220;read#8221;, #8220;update#8221; and #8220;delete#8221;. This module logs the events in a custom table and exposes the data to Views. It allows you to select which operations will be captured, so you can turn off read events if that is toonbsp;verbose./p h3a href=https://www.drupal.org/node/2595185User Moderation/anbsp;[sandbox]/h3 pA user moderation system that uses votes from other users to decide if a user is a spammer ornbsp;not./p h3a href=https://www.drupal.org/project/responsive_menu_combinedResponsive Menunbsp;Combined/a/h3 pAllows you to combine multiple menus into the responsive hamburger menu with tabs innbsp;it./p pa href=https://www.drupal.org/project/responsive_menu_combinedimg src=http://zengenuity.com/sites/default/files/uploads/responsive_menu_combined_mockup.png style=width:100%;height:auto;max-width:500px; //a/p h3a href=https://www.drupal.org/node/2599032Mailsuite/anbsp;[sandbox]/h3 pProvides a unified administration interface for managing the templates of all the emails you send from your Drupalnbsp;site./p pa href=https://www.drupal.org/node/2599032img src=http://zengenuity.com/sites/default/files/uploads/mailsuite.png style=width:100%;height:auto;max-width:500px; //a/p h3a href=https://www.drupal.org/project/twig_phpTwig span class=capsPHP/spannbsp;Filter/a/h3 pHa! If you love doing everything wrong and putting span class=capsPHP/span code in your template files, this is the Drupal 8 module for you. If you#8217;re slightly less crazy and only want to query the span class=capsDB/span from your twig files, then the new a href=https://www.drupal.org/project/little_bobby_tablesLittle Bobby Tables module/a may be a #8220;better#8221;nbsp;choice./p
Categories: Drupal Feeds

Microserve: Drupal Migration Tips

Fri, 11/06/2015 - 3:32am
img typeof=foaf:Image src=https://microserve.io/sites/default/files/styles/banner_image/public/blog/Screenshot%202015-10-16%2015.01.20_0.png?itok=XG1IQUZSamp;c=258b297f0d991ac4072ff5d4e28326a7 width=760 height=250 alt= /h1Drupal Migration Tips/h1divNov 6th 2015/divdivp As part of our recent work on a href=http://road.ccroad.cc/a, we performed a large data migration and transformation of hundreds of thousands of rows of data into their new Drupal 7 site, including users, taxonomy terms, nodes and comments. We did this using a combination of the migrate, migrate_d2d and migrate_extras modules, as well as a custom module to house all of our own migration code. During this process, I’ve collated some tips and tricks that I found useful./p h2 id=use-drush Use Drush/h2 p I’d suggest tha tyou use Drush to run the migrate commands rather than using the Migrate UI. I’ve found it to be more robust because I’ve had migrations fail when being run via the migrate UI, only to run successfully when executed via Drush./p p There are the main Drush migrate commands that you can run:/p pre code$ drush migrate-import (mi) $ drush migrate-stop (mst) $ drush migrate-reset-status (mrs) $ drush migrate-rollback (mr) /code/prep To see a full list of the available Drush Migrate commands, run code$ drush --filter=migrate/code./p h2 id=use-preparerow-and-drush_print_r Use prepareRow() and drush_print_r()/h2 p If you’re used to using functions like codedpm()/code, codedsm()/code or codekpr()/code in your module code to find out a value of a variable, or what properties an array or object has, there's a similar function in Drush - codedrush_print_r()/code. This outputs data to the screen in the same way that PHP’s codeprint_r()/code function does./p p I tend to use it within the codeprepareRow()/code method to see what data is available within the code$row/code object./p pre code class=phpprotected function prepareRow($row) { drush_print_r($row); } /code/prep If you are using migrate_d2d or extending another class, remember to use codeparent::prepareRow()/code to add to the preparations in the parent class rather than overridding them, and also to skip the row if was skipped in the parent class./p pre code class=phpclass RoadccPageNodeMigration { ... protected function prepareRow($row) { if (parent::prepareRow($row) === FALSE) { return FALSE; } } } /code/preh2 id=limit-the-number-of-items-that-you-are-importing Limit the Number of Items that You Are Importing/h2 p Rather than waiting for an entire migration to run to confirm if your latest script amend or addition worked, you can run a migration on a reduced number of items by using the code--limit/code option./p pre codedrush mi RoadccPageNode --limit=”10 items” /code/prep You can limit by the number of items, such as 10 items, or by the amount of time, such as 60 seconds./p h2 id=update-not-rollback Update, not Rollback/h2 p You can also save time by using the code--update/code option to update any already-imported rows, rather than rolling back and removing them, then re-importing./p pre codedrush mi RoadccPageNode --limit=10 items --update /code/preh2 id=use-addsimplemappings Use addSimpleMappings()/h2 p As part of each migration, you need to map the source values to the approprate destination using the codeaddFieldMapping()/code method. For example:/p pre code class=php$this-gt;addFieldMapping('destination', 'source'); /code/prep If, however, the source and destination names are the same, you can use the codeaddSimpleMappings()/code method. This just takes a list of property names in an array and automatically uses each one as both the source and the destination./p pre code class=php$this-gt;addSimpleMappings( array( 'uid', 'created', 'changed', 'field_foo', ... ) ); /code/prep If you are using migrate_d2d then some of the common properties - e.g. codeuid/code, codecreated/code, codechanged/code - will already be mapped in this way in the parent class./p h2 id=use-addunmigratedsources-and-addunmigrateddestinations Use addUnmigratedSources() and addUnmigratedDestinations()/h2 p img alt= src=https://microserve.io/sites/default/files/blog/Screenshot%202015-10-14%2014.18.16.png style=width: 259px; height: 68px; //p p If you use the Migrate UI, then you may see messages like the one in this image. In this example, there are 108 unmapped destination properties, although the same can happen for sources (properties attached to the data being imported). These may be intentionally not mapped, a newer source database has added more sources following a schema update, or a new module has been installed and has added more destinations./p p If you do mean to intentionally not map a source or a destination, then use the codeaddUnmigratedSources()/code and/or the codeaddUnmigratedDestinations()/code method within your constructor after declaring your field mappings./p p Both methods take an array of property names to declare as unmigrated, and will therefore mark them as mapped and remove the error./p pre code class=phppublic function __construct(array $arguments = array()) { ... // These fields are not being migrated, so mark them as such. $this-gt;addUnmigratedDestinations( array( 'field_one', 'field_two', 'field_three, ) ); } /code/prep This makes it much clearer when you or a colleague re-visits this migration at a later date that these were intentionally not mapped and not forgotten about or were not present when the migration class was written./p h2 id=write-your-own-base-migration-classes Write your own base Migration Classes/h2 p Because migrate is based on object-oriented classes, these can be extended and customised as needed, making them extremely flexible. I’ve found this to be very useful when I needed to do something that needed to apply to all migrations, such as getting the database connection, or something affected emall/em migrated nodes, such as replacing full URLs with relative ones so that they work on different environments, or mapping the source node ID values to the destination ones./p p This is done by writing our own a href=http://php.net/manual/en/language.oop5.abstract.phpabstract classes/a that extend the default ones such as codeMigration/code or codeDrupalNode6Migration/code. Because we’re using the codeabstract/code keyword before the class name, we ensure that these classes cannot be instantiated directly, and must be extended by another class./p h3 id=extending-a-normal-migration-class Extending a Normal Migration Class/h3 pre code class=phpclass RoadccMigration extends DrupalMigration { protected function getConnection($connection = 'migrate') { return Database::getConnection('default', $connection); } } /code/prep In this example, we can use code$query = $this-gt;getConnection()/code as the starting point for any classes that extend codeRoadccMigration/code, and then continue building the query using the codedb_select()/code syntax. This means that there is less duplication within our custom classes, and it makes it easy to update if needed as it’s only declared once./p h3 id=extending-a-migrate_d2d-class Extending a migrate_d2d Class/h3 pre code class=phpabstract class RoadccNodeMigration extends DrupalNode6Migration { public function __construct(array $arguments = array()) { parent::__construct($arguments); } protected function prepareRow($row) { // Update any absolute URLs. foreach (array('body', 'teaser') as $property) { if (isset($row-gt;{$property})) { if (strpos($row-gt;{$property}, 'http://www.road.cc')) { $row-gt;{$property} = str_replace('http://www.road.cc', '', $row-gt;{$property}); } if (strpos($row-gt;{$property}, 'http://road.cc')) { $row-gt;{$property} = str_replace('http://road.cc', '', $row-gt;{$property}); } } } } } /code/prep In this example, we’ve extended the codeDrupalNode6Migration/code class from the migrate_d2d module, and are performing some transformations on the body and teaser values - removing the full URL so that users aren’t redirected back to the original production site rather than to their intended destination./p p As all of our node migrations extend codeRoadccNodeMigration/code, this automatically applies to all nodes imported via the migration./p h2 id=limit-your-result-set Limit your Result Set/h2 p If you need to test something, like if all of your field mappings are working, I found it beneficial to find a small collection of examples that would cover all use cases, and then limit the query so that the migration would only affect those nodes, rather than reguarly searching for the right examples to test against./p p If you’re writing normal migrations you can do this in your code__construct()/code method as part of your query. If you’re extending a migrate_d2d class, then you’ll need to add your own codequery()/code method and add the additional conditions to the query from the parent class./p p For example:/p pre code class=phpclass RoadccPageNodeMigration extends RoadccNodeMigration { ... protected function query() { // Get the query from the parent class. $query = parent::query(); // Add any new conditions. In this case, just filter on this single node. $query-gt;condition('n.nid', 123456); // Return the new, full query. return $query; } } /code/prep This means that you can quickly re-run that migration and see how your changes affected the result, if at all, rather than waiting for the entire migration to be re-run on of hundreds or thousands of nodes./p p Just remember to remove the test conditions when they are no longer needed. If you use Git for version control, I’d suggest using codegit add -p/code to interactively add chunks of code to the staging area, allowing you to review each one and keep your code repository clean of any test conditions./p /diva href=/about/oliver-daviesimg typeof=foaf:Image src=https://microserve.io/sites/default/files/styles/medium/public/pictures/picture-118-1436259705.jpg?itok=8mOALDze alt=Oliver Davies#039;s picture title=Oliver Davies#039;s picture //appWritten by: a href=https://microserve.io/about/oliver-daviesOliver Davies/a, Senior Drupal Developer/p/pphr /p em style=line-height: 1.6em;Microserve is a a href=https://microserve.io/Drupal Agency/a based in Bristol, UK. We specialise in a href=https://microserve.io/drupal-services/drupal-developmentDrupal Development/a, a href=https://microserve.io/drupal-services/drupal-site-audit-and-health-checkDrupal Site Audits and Health Checks/a, and a href=https://microserve.io/drupal-services/support-maintenance-hostingDrupal Support and Maintenance/a. a href=https://microserve.io/contact-usContact us for for further information/a./em/p /p
Categories: Drupal Feeds

Drupal Association News: Why is Module X slow? Or is it really module Y? Debugging performance at scale

Thu, 11/05/2015 - 5:48pm
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpIts an exciting time to be working on Drupal.org! Content strategy is being implemented, and thus we've been evaluating and implementing modules, including:/p ulli Organic Groups/li li Panels/li li Page Manager/li li Panelizer/li li Flag 3.x (already implemented for spam)/li /ulpThere are numerous reasons why we're looking at using these modules, but one of them is because we're able to see them in action on events.drupal.org. Panelizer was being called out as one of the least performant of these modules. This was due to a slow query that was observed at Drupalcon Barcelona:/p blockquote pSELECT * FROM {panelizer_entity} WHERE entity_type = :entity_type AND entity_id IN (:ids)/p /blockquote pFor each entity that gets loaded, panelizer needs to grab the associated panelizer_entity ID and load it up for preperation to view. While this isn't a problem for a few nodes, it doesn't scale when you're querying 100s or thousands of them:/p blockquote p2015.09.23.mysql-slow.gz:2015-09-23T09:41:14.147976+00:00 db5 mysql-slow: EXPLAIN SELECT * FROM panelizer_entity WHERE entity_type = 'node' AND entity_id IN ('171', '177', '179', '181', '183', '185', '189', '193', '199', '201', '209', '211', '213', '215', '217', '219', '221', '225', '227', '229', '233', '235', '239', '243', '245', '247', '249', '251', '253', '255', '277', '279', '281', '287', '289', '291', '293', '295', '297', '301', '303', '305', '307', '309', '311', '313', '317', '319', '321', '323', '325', '327', '335', '337', '343', '347', '349', '351', '353', '359', '363', '367', '381', '385', '389', '391', '397', '399', '403', '405', '407', '409', '411', '413', '415', '417', '419', '421', '423', '427', '429', '431', '433', '435', '437', '439', '441', '443', '449', '451', '453', '455', '459', '461', '463', '465', '467', '469', '471', '473', '475', '477', '479', '481', '483', '485', '489', '495', '497', '499', '501', '503', '505', '507', '509', '511', '513', '515', '517', '519', '521', '523', '525', '527', '529', '531', '533', '535', '537', '539', '541', '543', '545', '547', '549', '551', '553', '555', '557', '559', '561', '563', '565', '567', '569', '571', '573', '575', '577', '579', '583', '585', '589', '591', '593', '595', '597', '599', '601', '603', '605', '607', '609', '611', '613', '615', '617', '619', '623', '631', '633', '635', '637', '639', '641', '643', '645', '647', '649', '651', '653', '655', '657', '659', '661', '663', '665', '667', '669', '671', '673', '675', '677', '679', '681', '683', '685', '687', '689', '691', '693', '695', '697', '699', '701', '705', '707', '709', '711', '713', '715', '717', '719', '721', '723', '725', '727', '729', '731', '733', '735', '737', '739', '741', '743', '745', '747', '749', '751', '753', '755', '757', '759', '761', '763', '765', '767', '769', '771', '773', '775', '777', '779', '781', '783', '785', '787', '789', '791', '793', '795', '797', '799', '801', '803', '805', '807', '809', '811', '813', '815', '817', '819', '821', '823', '825', '827', '829', '831', '833', '835', '837', '839',/p /blockquote pAdditionally, there is this issue: https://www.drupal.org/node/2023703 -- this discusses the potential issues around loading the panelizer settings and some solutions, including adding a lazy loader to get the entity but not load up all the settings until say, view time./p pIt is apparent that we have an issue on our hand. But was it panelizer?/p pFirst -- I would suggest watching Ezra Gildesgame's talk on XHprof. It will give you some ideas about how to troubleshoot performance issues./p piframe allowfullscreen= frameborder=0 height=480 src=https://www.youtube.com/embed/QYffQTujIV0?rel=0 width=640/iframe/p pSecondly, I'd suggest getting a monitoring tool to average your performance over time. This is also possible to do with XHprof, but thats for another post./p pAt the Association, we use a href=https://www.drupal.org/marketplace/new-relicNew Relic/a for server monitoring. While the full version can give you some really detailed results, our version gives us an overview. Here is a snapshot of what was happening when panelizer was being suspected as slow:/p pimg alt= src=https://assoc.drupal.org/files/drupalcon_database_activity_newrelic.jpg style=width: 699px; height: 410px; //p pWhen we take a look at the modules that are being executed, it gives us a little more information about what modules are going slow:/p pimg alt= src=https://assoc.drupal.org/files/drupalcon_modules_activity_newrelic.jpg style=width: 600px; height: 256px; //p p /p pIf you don't have New Relic, you can still get this data by setting up XHprof and going to the affected page. It should give you similar results. One nice feature of New Relic is that it gives you XHprof (ish) results for past performance problems. Unless you're profiling every page (which is not recommended for production), you won't have a snapshot result of what happened when the site was going slow./p pLooking at the New Relic logs and the query, we know three things:/p olli This issue is happening on node_add/li li This issue is affecting nodes that are related to strongsessions/strong only. (If you pop in those node ids in the query to events.drupal.org/node/XXX)/li li Entityreference module load time correlates to the database slow query time./li /olpSo what things could cause multiple session nodes to occur?/p ulli View of many nodes, like a schedule/li li field or panel on a node/add page that is making a query of entities/li li Session counts (although that would be quite unperformant, loading a node just to get its count.. but I've seen worse things happen)/li li strongan entity reference field/strong/li /ulpBy looking at the New Relic logs, there isn't any reference to the view module causing a problem. This is also during node_add, which doesn't call any views. While cod_sponsors or products might be an (separate) issue, they their peak loads are strongnot occuring/strong at the same time as the db query. That leaves us with entity reference. This hits as the top module at the same time as the panelizer query is being executed./p pstrongWhat node/add pages are using entity reference for sessions?/strong/p pOnly one. Session Evaluations./p pimg alt= src=https://assoc.drupal.org/files/drupalcon_er_eval_page.jpg style=width: 701px; height: 525px; //p pHere we are using entityreference prepopulate, which shows the session thats being evaluated. But, there is a problem with this.../p pimg alt= src=https://assoc.drupal.org/files/drupalcon_er_eval_inspect.jpg style=width: 700px; height: 692px; //p pSo there is the issue. Why didn't this occur in LA? because there were half as many sessions. Its also why we never saw it in any previous drupalcon, because the sites were singular so performance issues like this wouldn't ever have enough content to show its face./p pstrongConclusion / Take aways/strong/p ulli While there might be some architecture tweaks that could be done to Panelizer, it was not the key issue. /li li The issue is the combination of modules, exasperated by the amount of content. Entityreference + Entityreference Prepopulate (Disabled select field) + Panelizer + Two cons worth of content = Problem./li li Don't assume a module is slow or unperformant from a single query./li li When an issue is found, don't guess, investigate./li li XHProf and New Relic are essential for large drupal sites./li /ulpA simple tweak to the entity reference field has fixed the problem for now. Before the next con, we'll implement some better methods of showing the title so this doesn't occur again. In fact there is already an issue for it./p pOf course, this is just one potential issue - but this method demonstrates that a monitoring tool like New Relic plus performance profiling tools like XHProf can allow you to find unexpected interactions between modules that may result in performance problems at scale. Luckily, our fixes translate into fixes for the whole community. This means not only a better drupal.org, but a better Drupal product./p /div/div/div
Categories: Drupal Feeds

Out About On The Third Rock: An Engagement Manager’s guide to site building in Drupal 8 – week 01

Thu, 11/05/2015 - 5:05pm
More a log than a guide, but you get the idea! Day 0 Many a weeks before Day 1! started putting a backlog together, the site is for an Open Social Transformation project, its open sourcing the materials designed and developed for Peace Through Prosperity#8217;s social transformation programs that have had epic results so far. The [#8230;]
Categories: Drupal Feeds

Axelerant Blog: Drupal Staff Augmentation: Finding Partner Value

Thu, 11/05/2015 - 1:00pm
pIf you’re looking to hire for a Drupal project, Drupal staff augmentation may make the most sense for your organization. Drupal migration projects, site builds, support and maintenance, DevOps consultations—these all fall under this umbrella service. Growing your Drupal staff with an external agency is retractable, scalable, affordable, and smart. And it’s time to choose a partner./p h3a name=h.rbj5knydtw3w/aWhat Should You Consider First?/h3 p style=padding-left: 60px;emHow About What You’re Most Afraid Of./em/p pFailure. If you’ve been in the business long enough you know, you should be considering the ramifications first. It can’t be overstated: if you don’t bring in the talent to do it right, you need the time (and the budget) to do it over./p pSigning off on an insourcing deal without looking beyond the pitch, the branding, or a brief preliminary review is never a good idea. With concerns duly noted, it’s time to focus on value./p h3a name=h.882iv89fxr4s/aYour Organization Wants Value, Right?/h3 p style=padding-left: 60px;emSo What Does Your Organization Value?/em/p pA natural next step after defining concerns should be determining values. Drupal staff augmentation means you’re choosing the best Drupal agency to be your extension, a valued partner./p pThis partnership has to be on respective terms, conditions, and most of all shared values. Discerning the similarities or irreconcilable differences is what’s important here./p pEvery organization is different but when it comes to values, there’s sure to be overlap. What does your organization value when it comes to staffing? Here are six suggestions to get you thinking:/p pem1. Thought Leadership./em Drupal augmentee agencies should cherish and exude thought leadership as much as your organization. These will likely be different areas of thought leadership—you’re in different industries—but the value is the same./p p style=padding-left: 60px;strongLook for innovation in unique projects./strong Thought leadership isn’t always that recognizable. While an agency can be respected for forward thinking, it may not be applauded./p p style=padding-left: 60px;Competitive rhetoric dominates most industries, so it’s best to look through agency contributions, portfolios, case studies, and convention session topics./p pem2. Serious Discipline./em Levels of due diligence and focus aren’t things that can be taught easily, right? It’s something you learn to appreciate in yourself and other people. As far as values go, this one is essential./p p style=padding-left: 60px;strongWhat’re some signs of this?/strong Work a href=https://axelerant.com/drupal-devops-team-augmentation/environments that promote discipline/a. Remote offices and telecommuting practices speak an awful lot about a staff’s discipline. Without this value—it’s more of a virtue—nothing would get done./p pem3. Real Savings./em You want to make a deal, and you want the better half of it. If your prospective partner values savings, so will they. There’s nothing wrong with healthy negotiation. The alternative is scrambling for your business; a reckless disregard for the worth of their services. Your organization has likely turned down bad business before. A staff augmentation partner would do the same./p p style=padding-left: 60px;strongYour partner should understand this too./strong You’ll know if they share this value with you if they refuse blatant low balling. Desperation isn’t a sign of fiscal responsibility./p p style=padding-left: 60px;See if there are any big names, big projects—launching or re-launching one of the top websites in the US should count. You can bet these projects played well for the agency financially./p pem4. Timely Results./em The bottom line is this: you want results that are on time and budget. Without results oriented success, you’ve got nothing—literally. This should be significant to all of your staff members and even more so your augmented ones./p p style=padding-left: 60px;strongThere are things to look for./strong Check to see if your prospect publicly mentions deadlines, a href=https://axelerant.com/self-organization-in-digital-agency-teams/agency self-organization/a, and DevOps practices. These are signs that the agency values timely, results oriented success./p p style=padding-left: 60px;Next, you’re going to have to go beyond this and look into their project management processes. Agile frameworks. This is what you should be looking for./p pem5. Reputation. /emPoor standing within respective communities isn’t a good sign for obvious reasons. And the reputation the prospect has based on staff member reviews should be just as valued./p pIf there are challenges to the provider#8217;s reputation—or yours—this may be indicative of a lack of care to respond to allegations of mismanagement or a hostile work environment./p p style=padding-left: 60px;strongWhat do the employees say?/strong If there has been public, verifiable negligence against current or former team members (look at recent Glassdoor reviews and responses), then pass them by./p p style=padding-left: 60px;Public disgruntlement is a serious red flag when it comes to Drupal staff augmentation specifically. a href=https://axelerant.com/want-the-best-drupal-agency-look-at-team-wellness/You want your staff augmentation team to be well treated/a, and you don’t need a tarnished reputation for partnering with a problem agency./p pem6. Likeability./em It’s true that surveys show that likability is a key part of getting hired. There are some who believe this doesn’t matter, and that quantified, qualified results are the only things that do./p pWhen it comes to partnerships involving teams, this should matter a whole lot. You’re going to be collaborating, perhaps on a daily basis./p p style=padding-left: 60px;strongAsk yourself: do I want to work with these people?/strong Don’t go basing everything on first impressions, but consider the whole picture./p p style=padding-left: 60px;Teams should exude a fun, playful atmosphere. What you want are staff members who take their work seriously a href=https://axelerant.com/distributed-team-building-tips-takeaways/without taking themselves too seriously/a./p pemDrupal staff augmentation is really like hiring new employees./em Consider what you’re hiring process is like and what it’s meant to do. When onboarding staff, hiring managers are looking to discover if their values line up with the company./p pWhile it’s probably not smart to build a team of only the like-minded, creating a team with shared values when it comes to production, your industry, and accomplishments makes sense. So it is with Drupal agencies that offer staff augmentation.br / div class=custom-cta div class=container tab-container span Think we might be a match? /span a href=https://axelerant.com/contact/ data-color-override=false class=nectar-button regular-button accent-color style=visibility: visible;Tell us what you value./a /div /div pThe post a rel=nofollow href=https://axelerant.com/drupal-staff-augmentation-finding-partner-value/Drupal Staff Augmentation: Finding Partner Value/a first appeared on a rel=nofollow href=https://axelerant.comAxelerant/a./p
Categories: Drupal Feeds

Acquia Developer Center Blog: Lessons Learned from an Early Drupal 8 Project

Thu, 11/05/2015 - 10:09am
div class=field field-name-field-author field-type-entityreference field-label-hiddendiv class=field-itemsdiv class=field-item evenDC Denison/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/drupal8illo_1.jpg?itok=3WpOIV8H width=140 height=85 alt= //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:encodedpWith the official release of Drupal 8.0.0 on the horizon, real world Drupal 8 stories are becoming more valuable./p pNow that the train is actually approaching the station, we all want to know what it will be like to get on. /p pa href=http://mediacurrent.comMediacurrent/a, a leading Drupal design firm, got their Drupal 8 ticket punched early. They partnered with Acquia to launch a Drupal 8 site for a href=http://manh.comManhattan Associates/a, a supply chain management software provider, back in August, 2015, when Drupal 8 was in beta. The site has been on the Drupal 8 frontier ever since. /p pSo what has the experience been like? /p pA real world Drupal 8 series from Mediacurrent and Acquia has been telling some backstories. /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/acquia-drupal-planet typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=acquia drupal planet/a/div/div/div
Categories: Drupal Feeds

Pronovix: Industrial Drupal 8: the heating experience

Thu, 11/05/2015 - 2:31am
pDrupal 8 is out the door – well, the release candidate at least, so it's time to get intimate with it. As I'm mostly a backend developer with a focus on coding, I'm mostly interested in what's under the hood: how should we write a new module. As we had our heating system upgraded this summer and I opted for a controller that can be instructed via the web, it was an extra motivational factor: it would be nice to have a heating system #madewithdrupal8./p
Categories: Drupal Feeds

legomenon.io: Building an app in Drupal's theme layer

Wed, 11/04/2015 - 10:26pm
div class=field field--name-title-field field--type-text field--label-hiddendiv class=field__itemsdiv class=field__item evenBuilding an app in Drupal's theme layer/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:encodedpDrupal 8 as many people have already pointed out provides a great base for front end developers regardless of your chosen stack. Providing REST as core functionality has created a standardised approach which when left up to contrib can often become enigmatic./p pThis article aims to explain the benefits of building a JavaScript application via Drupal's theme layer. a href=http://mithril.js.orgMithril JS/a will be used as the client side framework, however the core concepts could be applied to others as well. /p blockquotepFor those interested in learning more JavaScript instead of another framework I strongly recommend giving a href=https://lhorie.github.io/mithril/comparison.htmlMithril JS/a a try. Mithril is more inline with React than Angular providing a classic MVC design pattern without the additional weight and learning curve a framework traditionally inroduces./p/blockquote pOne of the biggest pitfalls of building an app is the ability to provide a HTML fallback. This is not solely for visitors which have JavaScript disabled (a href=https://gds.blog.gov.uk/2013/10/21/how-many-people-are-missing-out-on-javascript-enhancement/1.3% ish/a) but instead for search engines and crawlers. Eiriksm has already written a a href=https://orkjern.com/headless-head-fallbackfantastic article/a which outlines these concerns. Eiriksm points out what a typical setup generally consists of and the benefits of using Drupal to generate your HTML. The flip side is if you don't have something like Drupal's traditional rendering method to fall back on you'll need to implement a service such as a href=https://prerender.io/https://prerender.io/a./p pThe one downside here being a duplication of theme work. This can of course be mitigated by matching your HTML output from Drupal. Rule of thumb for me is to focus on the app; as long as the fallback provides a clean and readable page. Crawlers won't care about your sweet styles and people with JavaScript disabled probably aren't on Twitter so it won't come back at you./p pBefore we start writing any JavaScript we need to configure our REST client; there's a number of articles already on a href=https://drupalize.me/blog/201401/introduction-restful-web-services-drupal-8 target=_blankdownloading and configuring/a the a href=https://www.drupal.org/project/restui target=_blankREST UI/a, follow those first if it's not setup. Enable the content resource, enable the GET method with your desired format and auth (I use JSON and cookie)./p pTo help handle our requests to Drupal I have written a small wrapper for Mithril's m.request function. The wrapper provides a number of common features we'll need when communicating with Drupal. The wrapper can be found a href=https://github.com/swim/mdrupal target=_blankhere/a./p ulliChecks and sets the users CSRF token/liliTracks request completion status/liliProvides a request queue/liliProvides a request cache/liliSets the request format/li/ul pThe first example illustrates how to load a single node from Drupal. The first object passed contains all the standard information required by m.request; method, url etc./p pre code class=language-javascript var response = md.request({ method: 'GET', url: '/node/1', background: true }); /code /pre pThe second example illustrates how to override the default format type, set request headers and provide a redraw timeout./p pre code class=language-javascript var response = md.request({ method: 'GET', url: '/node/1', background: true }, { headers: [ { type: 'Content-Type', value: 'application/json' } ], format: 'json', redrawTimeout: 1500 }); /code/pre /div/div/div
Categories: Drupal Feeds

Drupal Association News: Get Ready to Translate for Drupal 8

Wed, 11/04/2015 - 9:06pm
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpa href=http://drupalfr.org/img alt= src=https://assoc.drupal.org/files/drupalfr.png style=width: 200px; height: 84px; border-width: 0px; border-style: solid; margin: 10px; float: left; //aDid you hear the news? Drupal 8.0.0's release date will be November 19, 2015./p h3 Translations needed for the Drupal 8 release/h3 pWe’re excited to see Drupal 8 out in the world, but that also means there is not a lot of time left to get ready to share it with the world! We are working on both the release announcement and the press release in English. a href=https://groups.drupal.org/node/488223We are looking for volunteers to help translate it to your language/a. The final translations will be posted on Drupal.org at the time of release./p pOne of the hallmarks of our community is the hard work we put into making sure that everyone around the globe has access to Drupal in their own language. Since we're focused on translation leading up to the D8 release, I wanted to take a moment to highlight the work of our Friends at the French Drupal Association. To celebrate RC1, they translated some key drupal.org pages in French:/p ulli drupal.org/drupal-8.0 | a href=http://drupalfr.org/documentation/drupal-8-solution-blufante-pour-tousIt's French translation/a/li li drupal.org/drupal-8.0/features | a href=http://drupalfr.org/documentation/caracteristiques-drupal-8It's French translation/a/li li They even translated the a href=https://docs.google.com/presentation/d/1hGMZK-bWP_fbbz65u_p3LGbSKxtaOL95dE6kWF6m2y0/editDrupal 8 preview slideshow/a/li /ulpTo these amazing volunteers, we say Merci Beaucoup. Thanks for leading the way for a truly global release of Drupal./p h3 Want to help in other ways? Here’s how:/h3 pIf you can help promote the release on Twitter in your respective time zone, a href=https://docs.google.com/forms/d/1VtSng6hvFvA-5rZ_AUEYlW0qKKd_uRm6qsEki9vIl68/viewformPaul Johnson is looking for you/a. We also suggest you a href=https://twitter.com/celebr8d8follow @celebr8d8/a./p pWe also need you to throw a party! Organize a local meetup on the week (or even better the exact date) with sweets, sessions, shirts, stickers or whatever fits to spice it up. Make sure to tweet about your party with a href=https://twitter.com/search?f=tweetsamp;q=%23celebr8d8amp;src=typdthe #celebr8d8 hashtag/a and a href=https://groups.drupal.org/drupal-8-release-partieslet the community know/a, so it shows up on a href=http://drupical.com/our world map on Drupical.com/a./p /div/div/div
Categories: Drupal Feeds

Savas Labs: Drupalized Web Mapping @ NACIS 2015

Wed, 11/04/2015 - 6:00pm
pa href=http://savaslabs.com/2015/11/05/drupal-web-mapping.htmlContinue reading…/a/p
Categories: Drupal Feeds

Gizra.com: Decoupled Drupal: When, Why, and How - The Video

Wed, 11/04/2015 - 4:00pm
pI believe it#39;s safe to say that Decoupled Drupal is here to stay. Back in DrupalCon Los Angeles my good friend a href=https://pantheon.io/team/josh-koenigJosh koenig/a from a href=https://pantheon.io/Pantheon/a and I teamed up to share our experience with it./p pJosh asked me if I could do the presentation with him and I immediately agreed, as Josh is an awesome presenter and I knew it#39;s going to be fun. My answer, if I recall correctly, was:/p blockquoteIf the session gets selected it will need to be partially weird. And you might need to grow a mustache for that./blockquote pHe didn#39;t grow a mustache. But it was fun and full of energy. And it has a lot of very pragmatic tips, such as strongHeadless Drupal is a terrible idea!/strong/p pAnyway, enough text - here is the video:/p iframe width=640 height=360 src=https://www.youtube.com/embed/bLWa3SbEEa8?rel=0 frameborder=0 allowfullscreen/iframe pa href=http://www.gizra.com/content/decoupled-drupal-drupalcon-los-angeles/Continue reading…/a/p
Categories: Drupal Feeds

Mediacurrent: Leading the Way on Drupal 8: Lessons Learned from Manhattan Associates D8 Redesign (Blog Series Pt 3)

Wed, 11/04/2015 - 1:24pm
img typeof=foaf:Image src=http://d1l4od7sxc8nwf.cloudfront.net/sites/default/files/styles/thumb_blog_spotlight/public/leading-the-way-on-drupal-8.png?itok=l3J4PuX2 width=200 height=152 alt=Leading the Way on Drupal 8: Lessons Learned from Manhattan Associates D8 Redesign title=Leading the Way on Drupal 8: Lessons Learned from Manhattan Associates D8 Redesign / p dir=ltrspan style=line-height: 1.538em;In /spana style=line-height: 1.538em; href=https://dev.acquia.com/blog/drupal-8-success-stories/real-world-drupal-8-for-frontend-developers/30/09/2015/6891part one/aspan style=line-height: 1.538em; of our blog series centered on Manhattan Associates’s experience as an early D8 adopter, our partners at /spana style=line-height: 1.538em; href=https://dev.acquia.com/Acquia /aspan style=line-height: 1.538em;showed Drupal 8’s mobile-first approach, improved theming and /spana style=line-height: 1.538em; href=http://tlt;/bodygt;lt;/htmlgt;/a/p
Categories: Drupal Feeds

Commerce Guys: What B2B Companies can Learn from B2C Best Practices

Wed, 11/04/2015 - 12:12pm
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedscript type=text/javascript src=https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js/script!-- Slidebox Script --script type=text/javascript !--//--![CDATA[// !-- $(function() { var slidebox = $('#slidebox'); if (slidebox.length0) { $(window).scroll(function(){ var distanceTop = $('#last').offset().top - $(window).height(); if ($(window).scrollTop() distanceTop){ slidebox.animate({'left':'0px'},300); } else{ slidebox.stop(true).animate({'left':'-430px'},100); } }); $('#slidebox .close').on('click',function(){ $(this).parent().remove(); }); } }); //--!]] /scriptstyle !--/*--![CDATA[/* !--*/ /*SLIDE-IN CTA --------------------------------------------- */ #slidebox { padding: 10px 16px 10px 10px; background-color: #fff; border-top: 3px solid #00b4ff; position: fixed; bottom: 200px; left: -430px; -moz-box-shadow: 2px 0 5px #aaa; -webkit-box-shadow: 2px 0 5px #aaa; box-shadow: 2px 0 5px #aaa; z-index: 1000; } a.close { background: transparent url(https://commerceguys.com/sites/default/files/close.gif) no-repeat top left; width: 13px; height: 13px; position: absolute; cursor: pointer; top: 10px; right: 10px; } a.close:hover { background-position: 0 -13px; } .sup { vertical-align: super !important; font-size: smaller !important; } .foot { font-size: x-small !important; padding: 5 5 5 5 !important; } @media only screen and (max-device-width: 480px) { #slidebox { width: 100%; } } /*--!]]*/ /stylepB2B eCommerce is growing. Fast. In fact according to one Internet Retailer article a href=https://www.internetretailer.com/2015/04/02/new-report-predicts-1-trillion-market-us-b2b-e-commerceB2B online revenue will hit $1.13 trillion/a in sales worldwide by 2020span class=sup1/span. This is outpacing retail eCommerce significantly and is creating significant opportunity for manufacturers and other B2B companies to invest in online sales and marketing technology to better serve their clients’ demands. There are a number of factors in today’s business environment that contribute to this critical need to invest in better, more integrated web technologies. If you are unsure about whether it’s worth it to modernize your online technology, or you’re reluctant to set aside the appropriate budget for such an endeavor, this article provides strong reasons why this may be the best opportunity to grow your business and better serve your customers./p p align=centerimg src=https://commerceguys.com/sites/default/files/blog/files/stone-age_2.png style=width:90%; padding: 5 5 5 5; //p pIf you are a manufacturer, you are probably keenly aware of the industrialization of traditionally ‘3rd-world’ countries. While the quality of this new competition is often lower, the fact is that these manufacturers create downward pressure on prices in the market. And additional competitors never make it easier to keep and gain market share. Ultimately, margins on products are skinnier than they were a decade or two ago. Two major strategies are being considered to combat encroaching lost profitability and market share: cutting costs and going direct-to-consumer./p pWhat many manufacturers have realized is that their technical infrastructure is outdated and their inability to leverage the latest web technology to modernize their business is costing them big. Legacy systems are typically spread across multiple technologies that are difficult and expensive to integrate and maintain. Often times, multiple databases become hard to manage and require manual data entry often by the company’s most valuable employees! Transitioning can be expensive, but modernized systems often reap the benefits of reduced stress and hassle, better customer service, reduced technical and inventory costs, and more agile marketing capabilities./p pAnother opportunity that many manufacturers are considering , is increasing their margins by removing the ‘middlemen’, and going direct to the end customer. The reward is higher profit margins and ownership of the end customer relationship. Direct ownership of the customer has benefits that go beyond higher profit margins as it also means better access to word-of-mouth advertising, easier brand management, the higher ROI on marketing dollars that goes with customer loyalty, and the customer behavior and preference data gathered through the process of directly servicing the customer./p p align=centerimg src=https://commerceguys.com/sites/default/files/blog/files/middle-man.png style=width: 90%; padding: 10 10 10 10 ; //p pThe other obvious (and often painful) fact is that the methods of reaching buyers are changing. Buyers are less willing to be subjected to cold callspan class=sup2/span sales efforts and less likely to click on banner adsspan class=sup3 4/span. Traditional online marketing is losing traction across the board. Marketing is seeping from every corner of our lives, whether it’s print, radio, web, apps, calls, and texts. You can’t even visit a news site without being confused about whether your clicking on an article or an ad disguised as an article! What buyers want to do now is research product details and pricing on their own and choose their supplier before they even pick up the phone, relying on that research to inform their interest and buying decisions. This requires that the right content is at their fingertips when they are researching your offerings./p pIn a recent article from ‘think with Google’span class=sup5/span, statistics were presented that showed that a full 46% of buyers now fall into the 18-34 years old age range, and this shift has rapidly occurred over the last two years. These younger buyers will demand a different experience than old buyer portals with their poor user experience. Even the new ones created by ERP systems are typically years behind modern eCommerce technology, and can range from cheap and dirty to expensive yet constrictive. All of these ERP wholesale portals lack flexibility, scalability, etc. The hidden cost to the B2B merchant is frustration, loss of time, loss of growth, and ultimately loss of their loyal clients. /pp id=lastThere is no question that significant revenue is transitioning to the online channel from traditional B2B channels. If you include revenue that comes through these traditional channels (sales reps and other direct offline orders), but was initiated by buyers’ online research, it accounts for a (most likely) majority percentage of overall revenue changing hands in the B2B arena. The distributor is sorely hurt if they do not have the right online experience. And these buyers are not likely to reach out before they move to another distributor. Their silent ultimatum is modernize or lose market share./p pThe hard part about making the transition is that it is a jungle in terms of technologies promising ‘robust’ B2B solutions. The discussion seems to always center around a list of features, which are used to compare one technology to the next. While it may be comforting to have these lists and comparisons, the crux of the matter is actually less about features, more about fundamental differences. Features create the blind spots, where decision makers stop thinking about how the technology choice will impact the end user experience, including the integration of commerce and content, and how it may create unnecessary dependence on a vendor. We often find that the focus on features creates an assumption that all other decision factors are equal, and in doing so, often lose control the ability to adapt quickly to market changes and maintain control over their business processes./p table style=width:50%;trtdp style=padding 0 20 0 20; span style=font-size:18px;strongInterested in B2B eCommerce?/strong/spanbr / We've got a lot to share. Subscribe below and we will email you on several key topics. br //pform accept-charset=utf-8 name=c8d938db-7dfb-42b2-808e-e98d6fcaef48 class=maForm method=POST action=https://a.volacciapp.com/data/public/IncomingForm/Ma/submit id=c8d938db-7dfb-42b2-808e-e98d6fcaef48div class=maFormElement input type=text name=ma-form-element-yui_3_18_1_1_1446581660671_1421 class=formText formRequired placeholder=EMAIL ADDRESS value= size=50 //divdiv class=maFormElement br /button name=ma-form-element-yui_3_18_1_1_1446581660671_2102 class=formSubmit value=submit type=submitSubmit/button/divinput type=hidden name=form_id value=c8d938db-7dfb-42b2-808e-e98d6fcaef48 /input type=hidden name=form_access_id value= /input type=hidden name=__mauuid value= //form /td/tr/tablep/phr /p class=foot span class=sup1/spana href=- https://www.internetretailer.com/2015/04/02/new-report-predicts-1-trillion-market-us-b2b-e-commerceB2B e-commerce sales will top $1.13 trillion by 2020./a 2015. 2 Sep. 2015 br /span class=sup2/spana href=http://www.business2community.com/social-selling/37-facts-future-social-selling-vs-cold-calling-0110467937 Facts On The Future Of Social Selling vs. Cold Calling./a 2014. 23 Jul. 2015 br /span class=sup3/spana href=http://blog.hubspot.com/marketing/horrifying-display-advertising-stats10 Horrifying Display Advertising Stats/a. - Hubspot. 2013. 23 Jul. 2015 br /span class=sup4/spana href=http://www.tintup.com/blog/better-than-banner-ads-smart-ways-spend-ad-dollars-2015-muriel-macdonald/Better than Banner Ads: Smart ways to spend your ad .../a - Tint. 2015. 23 Jul. 2015 br /span class=sup5/spanThe Changing Face of B2B Marketing – Think with Google. 2015. 23 Jul. 2015 /p div id=slideboxa class=close /aimg style=float:left;padding-right:10px;padding-left:5px; padding-bottom:10px; src=https://commerceguys.com/sites/default/files/envelope.png /div class=shadow alignCenter style=width: 90%; height: auto; div style=width:400px h3strongOur Experience, Your Business./strong/h3 We’ve got more insight into the unique challenges B2B companies face. Subscribe today to receive additional content over the coming weeks.br /br /form accept-charset=utf-8 name=c8d938db-7dfb-42b2-808e-e98d6fcaef48 class=maForm method=POST action=https://a.volacciapp.com/data/public/IncomingForm/Ma/submit id=c8d938db-7dfb-42b2-808e-e98d6fcaef48div class=maFormElement input type=text name=ma-form-element-yui_3_18_1_1_1446581660671_1421 class=formText formRequired placeholder=EMAIL ADDRESS value= size=100 //divdiv class=maFormElement br /button name=ma-form-element-yui_3_18_1_1_1446581660671_2102 class=formSubmit value=submit type=submitSubmit/button/divinput type=hidden name=form_id value=c8d938db-7dfb-42b2-808e-e98d6fcaef48 /input type=hidden name=form_access_id value= /input type=hidden name=__mauuid value= //form /div /div/div /div/div/div
Categories: Drupal Feeds

Acquia Developer Center Blog: How to Conduct Usability Tests at Conferences: Tips Tricks

Wed, 11/04/2015 - 12:09pm
div class=field field-name-field-author field-type-entityreference field-label-hiddendiv class=field-itemsdiv class=field-item evenJulie Fischer/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/usability-cropped.png?itok=BhxlNSGI width=140 height=85 alt=usability test setup //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:encodedpOne of the most difficult parts of executing a successful round of usability testing can be recruiting participants. You may need to show your designs to people who fit a certain professional persona, or hear feedback from people with a particular technical skill set. Once you’re in touch with testers who fit the bill, you’ll have to navigate their busy schedules, and disparate locations, to organize their test sessions./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/acquia-drupal-planet typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=acquia drupal planet/a/div/div/div
Categories: Drupal Feeds