Planet Drupal

Syndicate content
Drupal.org - aggregated feeds in category Planet Drupal
Updated: 24 min 16 sec ago

Phase2: Static Drupal – Taking the pain out of Drupal hosting

Thu, 07/31/2014 - 15:10
divThink back with me to the days of static websites. Those were easy! You just threw some html up on a server and that was it. No performance issues, no security issues, no worries about redundant failover if something goes wrong. No getting woken up in the middle of the night because something did happen. It was simple, fast and hard to break./div pAll that changed with more Dynamic websites like Drupal. We get a lot for using Drupal. We get a first class CMS, huge ecosystem of modules and the ability to change content live on the server. But we also get a lot of headaches along with it. We have to design a server system that can handle the load, be constantly monitoring it for failures, apply security updates and be vigilant of security breaches and be ready to be woken up when something doesn’t work./p pWe recently were challenged to find a way to use the power of Drupal as a CMS but serve the site as generated static pages. It was an interesting idea and we decided to see if we could make it work. We started out by building a proof of concept module that would take a Drupal site and render it as plain HTML pages with all the associated assets such as JS, CSS and images. This turned out not to be too hard once we used a little apache rewrite rule to fix url paths. We decided to call this module the Static module. It is available on Drupal.org (a href=http://www.drupal.org/project/static target=_blankhttp://www.drupal.org/wbr /project/static/a)/p div/div divBy itself this module turns out to be really useful for two use cases./div div/div h2Static websites/h2 divThere is a class of website that is built in Drupal but is rarely if ever updated. There are no “community” bits to it like comments and webforms. For this type of website, you can use the static module to periodically export your entire Drupal site to static html that can be uploaded to a simple server without PHP, MySQL, memcache or anything other than a web server. If changes need to be made, they can be made on a laptop or staging server and then exported and uploaded again. This allows both viewing the full site for acceptance testing before it goes live and all of the performance and security gains of a static website./div div/div h2Archive websites/h2 divA similar type of website is an archival site such as the various DrupalCon and DrupalCamp websites. While they no longer need to be live Drupal sites or be updated, they should still be accessible to see the content that was there. In the same way as simple Static websites, archived websites can be generated, uploaded and then left alone./div div/div divStatic websites are great and all but we can actually take it one step further. Turns out this module is also even better for building Hybrid websites./div div/div h2Hybrid websites/h2 divA hybrid website is the primary reason we created the static module. We wanted a system where Drupal was installed behind a firewall and a static site was periodically generated and copied over to a public web server. This would allow content writers to create, update and delete content within Drupal which would track what is changing and within a short period of time it would be generated and transferred to the public facing site. Essentially it would have the power of content editing in Drupal but be hosted to the public as static HTML./div div/div divWe got this system working and I’m going to share more about it at my talk during a href=http://2014.capitalcampandgovdays.com/capital-camp-and-gov-days/sessions/static-drupal-sleep-night-cmsCapitalCamp/Drupal4Gov/a. Be sure to check it out if you are coming./div

ThinkShout: Responsive Images in Drupal with the Picture Module

Thu, 07/31/2014 - 15:00
pIn today’s web device climate, you never know if your site will be viewed on a laptop, a tablet, a phone, an 84-inch 4k monitor, a Blu-ray player, a gaming console, or a a href=http://www.samsung.com/us/appliances/refrigerators/RF4289HARS/XAA title=Seriously.refrigerator/a. Most of us have probably experienced the frustration of using a website that displayed poorly because of its inbuilt assumptions about what the user’s screen would look like. The ability for your web content to adjust to its context---in particular, screen resolution---is critical to making sure you deliver the best web experience possible to every user./p pThe tools and techniques to do so are known as responsive web design (RWD). One of the first high-profile sites to implement RWD was a href=http://www.bostonglobe.com/The Boston Globe/a, which is a great example to take a look at. RWD in general is beyond the scope of this blog post. Today, we’ll focus on a specific bit of RWD that is a little tricky to handle in Drupal: responsive images./p pIf you just did what I first did and typed a href=http://drupal.org/project/responsive_imagesdrupal.org/project/responsive_images/a into your browser to see what popped up, you’ll see a module that is no longer actively maintained. a href=https://www.drupal.org/project/adaptive_imageMany/a a href=https://www.drupal.org/project/cs_adaptive_imageresponsive/a a href=https://www.drupal.org/project/aisimage/a a href=https://www.drupal.org/project/resp_imgprojects/a have come and gone over the last few years, with varying approaches and degrees of success; it’s a crowded space./p pLuckily, Drupal 8 will feature a responsive image handling solution in core with the new a href=https://www.drupal.org/project/picturePicture/a module, and it has already been backported to Drupal 7. It’s a bit tricky to set up with configurations spread across several different GUI menus, but once you have it running, it’s a fast, smooth solution to an important challenge, and it plays well with its neighbors./p h2The Gist Of It/h2 pWe#39;ll be dealing with a handful of new objects to get responsive image behaviors going smoothly./p ul liBreakpoints ul liBreakpoints are ranges of screen sizes, described by conditional tests (i.e., minimum width = 640)/li /ul/li liBreakpoint Groups ul liEWISOTT (Exactly What It Says On The Tin)/li /ul/li liImage Styles ul liYou may already know these from the Media module; they let you bundle dimensions, scaling modes, etc. into styles that can be reused across your site./li /ul/li liPicture Mappings ul liPicture mappings pair up breakpoints with image styles/li /ul/li /ul pOnce an image is associated with a responsive style, the Picture module will check the page dimensions, look at the breakpoint group, find the emfirst/em breakpoint that applies to those dimensions (we#39;ll come back to this point...), look at the picture mapping to find the associated image style, and apply that style to the image. This happens in real time, so a user resizing their window should see the image rescale to fit their new window size instantaneously./p h2Installation/h2 pWe#39;ll use a href=http://drush.ws/Drush/a, a Drupal cli, to install the modules and their dependencies, and to enable them./p pPicture has two important dependencies:/p ul liThe a href=https://www.drupal.org/project/breakpointsBreakpoints/a module, which will keep its eye on the browser window size/li liThe a href=https://www.drupal.org/project/ctoolsChaos Tool Suite/a, which gives us lots of handy development tools and APIs/li /ul pDrush will handle the dependencies for you; just navigate to your site root and type:/p div class=highlightprecode class=language-bash data-lang=bashdrush en picture -y /code/pre/div pWe#39;ll also want the Media module:/p div class=highlightprecode class=language-bash data-lang=bashdrush en media -y /code/pre/div p(In the above commands, code-y/code just tells drush to assume quot;yesquot; for any requests for confirmation.)/p h2Setting Up Breakpoints/h2 pBreakpoints can be found under Configuration gt; Media gt; Breakpoints. Each breakpoint needs a name and a a href=http://css-tricks.com/resolution-specific-stylesheets/media query/a. Optionally, you can enable a href=http://www.sitepoint.com/support-retina-displays/Retina display/a handling for each breakpoint./p pimg src=/assets/images/blog/breakpoints-example-0.png alt=breakpoints-example-0.png title=Three breakpoints with basic media queries/p pNote that the smallest breakpoint is set to a code0px/code minimum. This ensures that arbitrarily small screen sizes will be accommodated./p h3Ordering/h3 pThe order in which the breakpoints appear is the order your breakpoint group will check their media queries. The example configuration uses minimums in decreasing order, which is preferable for responsive image design. If a breakpoint query fails (if the screen width is below the minimum), the next breakpoint down the line will be checked. Make sure you get this order right; once you pull these breakpoints into a group, their order cannot be edited; you#39;d need to delete the breakpoints and their group and start over./p h3Groups/h3 pClick #39;Add a new group#39; to define a Breakpoint Group. The ordering on this screen will match the order defined by weights in the previous step./p pimg src=/assets/images/blog/breakpoints-example-1.png alt=breakpoints-example-1.png title=A simple breakpoint group/p pNote that once a breakpoint has been added to a group, it emcannot/em be edited./p h2Responsive Styles/h2 pThis is an optional step provided by the Breakpoints module; it#39;s essentially a wizard which makes copies of a preexisting image style, one for each selected breakpoint. If you have some image style effects you want to apply everywhere (desaturate, perhaps?), this can be a handy time saver. For general use, it#39;s not really necessary./p h2Image Styles and Picture Mappings/h2 pSet up an image style for each breakpoint under Configuration gt; Media gt; Image Styles. For general use, these can be equal to or slightly less than the minimums of the associated breakpoints; for more complex layouts, id est columns, these might instead be set to match the behavior of the column widths./p pimg src=/assets/images/blog/image-styles-example-0.png alt=image-styles-example-0.png title=Three basic image styles /p pPicture Mappings are found under Configuration gt; Media gt; Picture Mappings. First, associate the new Picture Mapping with our Breakpoint Group./p pimg src=/assets/images/blog/picture-mappings-example-0.png alt=picture-mappings-example-0.png title=Setting the breakpoint group of a picture mapping/p pNow that the Picture Mapping has a Breakpoint Group, each breakpoint can be associated with an image style. Populate these with the image styles defined previously, and hit Finish./p pimg src=/assets/images/blog/picture-mappings-example-1.png alt=picture-mappings-example-1.png title=Picture mapping configuration/p h2File Type Display/h2 pUnder Configuration gt; Media gt; File Types, select Images -gt; Manage File Display. Enable the Picture display mode, and select the Example Group./p pimg src=/assets/images/blog/file-display-examples-0.png alt=file-display-examples-0.png title=File display settings/p h2Content Type/h2 pNow we#39;re ready to create a node type with a responsive image field./p pMake a content type and add a File field with the Media File Selector widget. Make sure that the field permits the image format file extensions you plan to use; by default it only allows code*.txt/code./p pimg src=/assets/images/blog/responsive-content-type-examples-0.png alt=responsive-content-type-examples-0.png title=Node content type /p pUnder Manage Display, make sure that the responsive image field is set to the Rendered File display formatter, which will connect the field to the file display mode we set earlier./p h2The End Product/h2 pWe#39;re done! Create a node with the example content type, add an image, and start dragging the corner of your window around. The image should resize as the window width passes between breakpoints./p pimg src=/assets/images/blog/responsive-image-example-0.png alt=responsive-image-examples-0.png title=Medium image /p pimg src=/assets/images/blog/responsive-image-example-1.png alt=responsive-image-examples-1.png title=Small image /p h2The Benefits/h2 pThere are several advantages to responsive web design, some of which are particular to image loading./p ul liControlled, consistent user experience across devices ul liWithout clear knowledge of how our sites will be viewed, we cannot effectively design them to meet user needs./li /ul/li liEase of navigation ul liNever let important elements render offscreen./li /ul/li liBandwidth conservation ul liDon#39;t send a 4k image to a QVGA-screen phone that doesn#39;t need it./li /ul/li liCode it once ul liNo need to build a secondary mobile site./li /ul/li liSEO optimization ul liEvery node has one canonical URL, so Google won#39;t split its results between mobile and desktop versions (which could easily drop your site to the dreaded second page of search results)!/li /ul/li liShareability ul liA bad example: a href=http://en.wikipedia.org/wiki/DrupalWikipedia/a. Take a look at how different its a href=http://en.m.wikipedia.org/wiki/Drupalmobile version/a looks. If a mobile user posts an interesting article to Twitter, for example, both desktop and mobile users following the link will be hit with the mobile version, regardless of their device. With a single-URL responsive design, this is a nonissue./li /ul/li /ul h2Resources/h2 ul lia href=https://www.drupal.org/project/picturePicture module project page/a/li lia href=https://www.drupal.org/project/breakpointsBreakpoints module project page/a/li lia href=http://picture7d.h011.attiks.com/node/1Live demo of Picture module on Drupal 7/a/li lia href=http://picture.responsiveimages.org/The Picture element proposal document/a/li /ul

Pixelite: How to create a dashboard with Dashing and integrate with Drupal data

Thu, 07/31/2014 - 13:27
div class=service-linksa href=http://twitter.com/share?url=http%3A//www.pixelite.co.nz/article/how-create-dashboard-dashing-and-integrate-drupal-dataamp;count=horizontalamp;via=amp;text=How%20to%20create%20a%20dashboard%20with%20Dashing%20and%20integrate%20with%20Drupal%20dataamp;counturl=http%3A//www.pixelite.co.nz/article/how-create-dashboard-dashing-and-integrate-drupal-data class=twitter-share-button service-links-twitter-widget title=Tweet This rel=nofollowspan class=element-invisibleTweet Widget/span/a a href=http://www.facebook.com/plugins/like.php?href=http%3A//www.pixelite.co.nz/article/how-create-dashboard-dashing-and-integrate-drupal-dataamp;layout=button_countamp;show_faces=falseamp;action=likeamp;colorscheme=lightamp;width=100amp;height=21amp;font=amp;locale= title=I Like it class=service-links-facebook-like rel=nofollowspan class=element-invisibleFacebook Like/span/a a href=http://www.pixelite.co.nz/article/how-create-dashboard-dashing-and-integrate-drupal-data title=Plus it class=service-links-google-plus-one rel=nofollowspan class=element-invisibleGoogle Plus One/span/a a href=http://www.pixelite.co.nz/article/how-create-dashboard-dashing-and-integrate-drupal-data title=Share on Linkedin class=service-links-linkedin-share-button rel=nofollowspan class=element-invisibleLinkedin Share Button/span/a/div div class=field-hero-image img typeof=foaf:Image src=http://www.pixelite.co.nz/sites/default/files/styles/hero_image_article/public/dashboard.png?itok=jh_KJufQ alt= / /div div class=field-body h2What is Dashing/h2 pa href=http://dashing.io/Dashing/a is a Sinatra (think ruby but not rails) based framework that lets you build dashboards. It was originally made by the guys at Shopify for displaying custom dashboards on TVs around the office./p h3Why use Dashing/h3 pDashing makes your life easier, freeing you up to focus on more inportant things - like what data you are looking to display, and what time of widget you want to use./p pFeatures of dashing:/p ul liOpensource (MIT license)/li liWidgets are tiny and encapsulated, made with SASS, HTML and coffeescript/li liThe dashboard itself is simply HTML and SASS, meaning you can theme and style it to suit your needs/li liComes bundled with several powerful widgets/li liWidgets are powered by simply data bindings (powered by batman.js)/li liPush and pull methods available to each widget/li liPull jobs can be configured to run in the background on a set interval (e.g. every 30 seconds, poll Chartbeat for new data)/li liLayout is drag amp; drop interface for re-arranging widgets/li /ul h3Why not make a dashboard in Drupal/h3 pThere are a href=https://www.drupal.org/project/homeboxseveral/a a href=https://www.drupal.org/project/dashboardifydashboard/a a href=https://www.drupal.org/project/admin_dashboardmodules/a in Drupal, and yes you can go to a delbit/del lot of trouble and re-create the power of Dashing in Drupal, but there is no need./p pDashing is great at what it does, and it emonly does one thing/em./p pAnother advantage is that you can query other sources of data - e.g. Google Analytics or MailChimp and display metrics from those applications on your dashboard./p pA really great example (including code) and can found over at a href=http://derekweitzel.blogspot.co.nz/2014/03/a-hcc-dashboard-with-osg-accounting.htmlhttp://derekweitzel.blogspot.co.nz/2014/03/a-hcc-dashboard-with-osg-accounting.html/a/p h2Installation of Dashing on Ubuntu 14.04/h2 pThe only real requirement is ruby 1.9+ (this comes by default in Ubunty 14.04, in Ubuntu 12.04 you need to install strongruby-1.9/strong explicitly)/p precodesudo apt-get install ruby ruby-dev nodejs g++ bundler sudo gem install dashing /code/pre pyou can create a new dashboard with/p precodedashing new awesome_dashboard cd awesome_dashboard bundle /code/pre pYou start the application by/p precodesudo dashing start /code/pre pYou now have a dashboard on http://localhost:3030 ready to go/p h2Creating a new Dashing widget/h2 pThere are already a few tutorials online, the best of which is probably just the a href=https://github.com/Shopify/dashing/wiki/Additional-Widgetsexisting suite of widgets available/a./p pHere we will go through a simple example where we want to graph the of pieces of content in the Needs review state (provided by Workbench moderation) in Drupal. This serves as a mini-todo list for content authors, as ideally this number should be as low as possible./p pIn this example, we are re-cycling the List widget./p pstrongPlace an instance of the List widget on a dashboard/strong - e.g. sample.erb/p precodelt;li data-row=1 data-col=1 data-sizex=1 data-sizey=1gt; lt;div data-id=newsarticlesreview data-view=List data-unordered=true data-title=News articles in 'Needs review'gt;lt;/divgt; lt;i class=icon-check-sign icon-backgroundgt;lt;/igt; lt;/ligt; /code/pre pstrongCreate a new job to poll for data/strong/p pCreate a new file in strongjobs/newsarticlesreview.rb/strong, and place:/p precode#!/bin/env ruby # encoding: utf-8 require 'net/http' require 'uri' require 'json' # TODO replace with a real production host server = https://localhost SCHEDULER.every '30s', :first_in =gt; 0 do |job| url = URI.parse(#{server}/api/content/dashboard?token=FawTP0fJgSagS1aYcM2a5Bx-MaJI8Y975NwYWP12B0E) http = Net::HTTP.new(url.host, url.port) http.use_ssl = (url.scheme == 'https') http.verify_mode = OpenSSL::SSL::VERIFY_NONE response = http.request(Net::HTTP::Get.new(url.request_uri)) # Convert to JSON j = JSON[response.body] # Send the joke to the text widget review_content = {} review_content['en'] = { label: 'English', value: j['en']['news_article']['needs_review'] } review_content['mi'] = { label: 'Māori', value: j['mi']['news_article']['needs_review'] } send_event(newsarticlesreview, { items: review_content.values }) end /code/pre h2Create a Drupal data source/h2 pNow we need to feed the Dashing request with a Drupal API. I have chosen to do all of these custom, as they are straight forward. In theory you could also craft these with the services module as well./p pstrongCreate hook_menu() entry/strong/p precode/** * Implements hook_menu(). */ function CUSTOM_menu() { // Dashboard API requests. Protected using a token. // e.g. api/content/dashboard?token=FawTP0fJgSagS1aYcM2a5Bx-MaJI8Y975NwYWP12B0E $items['api/content/dashboard'] = array( 'title' =gt; 'Content types broken down by workflow status', 'page callback' =gt; 'CUSTOM_content_dashboard', 'access callback' =gt; 'CUSTOM_dashboard_api_access', 'access arguments' =gt; array('api/content/dashboard'), 'type' =gt; MENU_CALLBACK, 'file' =gt; 'CUSTOM.dashboard.inc', ); return $items; } /code/pre pHere we define a custom route, and declare the access callback. The access callback is special as it needs to ensure that access is restricted to only requests with a special token. The token being created from a hash of the Drupal salt combined with the current path and private key, and base64 encoded (much like a href=https://api.drupal.org/api/drupal/includes%21common.inc/function/drupal_get_token/7drupal_get_token()/a without the session ID check)./p precode/** * Access callback to the dashboard API endpoints. These are protected by a * token. * * @param String $path * The path that is being requested. * * @return Boolean * Whether or not the use has access to the callback. */ function CUSTOM_dashboard_api_access($path) { global $is_https; // HTTPS only. $only_allow_https = (bool) variable_get('api_https_only', 1); if ($only_allow_https amp;amp; !$is_https) { return FALSE; } // Only allow get requests. if ($_SERVER['REQUEST_METHOD'] !== 'GET') { return FALSE; } // Check token is correct. $params = drupal_get_query_parameters(); if (!isset($params['token']) || empty($params['token'])) { return FALSE; } $valid_token = CUSTOM_token_validation($path); if ($params['token'] !== $valid_token) { return FALSE; } return TRUE; } /code/pre pAnd finally the data for the callback./p precode/** * Gathers current content statistics from Drupal, including the amount of * content broken down by a) content type, b) workflow state, c) status. * * @return JSON */ function CUSTOM_content_dashboard() { $output = array(); $languages = language_list('enabled'); $types = node_type_get_types(); // Workbench states. foreach ($languages[1] as $langcode =gt; $language) { foreach ($types as $machine_name =gt; $type) { // Workbench moderation in use (remove this if you do not have the module). if (workbench_moderation_node_type_moderated($machine_name)) { $results = db_query(SELECT COUNT(n.vid) AS total, w.state FROM {node} n JOIN {workbench_moderation_node_history} w ON w.vid = n.vid WHERE n.type = :type AND n.language = :lang AND w.current = 1 GROUP BY w.state, array(':type' =gt; $machine_name, ':lang' =gt; $langcode))-gt;fetchAllAssoc('state'); foreach ($results as $state =gt; $result) { $output[$langcode][$machine_name][$state] = (int) $result-gt;total; } } // No workbench moderation for this content type, use the status column. else { $results = db_query(SELECT COUNT(n.nid) AS total, n.status FROM {node} n WHERE n.type = :type AND n.language = :lang GROUP BY n.status, array(':type' =gt; $machine_name, ':lang' =gt; $langcode))-gt;fetchAllAssoc('status'); foreach ($results as $status =gt; $result) { if ($status == NODE_PUBLISHED) { $status = 'published'; } else { $status = 'unpublished'; } $output[$langcode][$machine_name][$status] = (int) $result-gt;total; } } } } drupal_json_output($output); drupal_exit(); } /code/pre pAnd there you have it. Note the above code relies on workbench moderation being present, if you do not have it, simply remove the section of the code that is relevant. Note that the API response is considerably more complex and complete than the example calls for, but this just means you can display more data in more ways on your dashboard./p pHere is the finished product:/p pimg src=/sites/default/files/article_images/widget-example.png width=379 height=343 alt=Dashing example widget //p h2Extra for experts/h2 pCreate a init.d script for dashing, a href=https://gist.github.com/gregology/5313326#file-dashboardhere is a good starter/a./p h2Comments/h2 pLet me know if you have completed (or started) a recent project to visual data from Drupal (or related third party applications) and your experiences there. Pictures are always welcome./p /div h3 class=field-label Tags /h3 div class=field-tags a href=/tag/drupal typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=drupal/a /div div class=field-tags a href=/tag/dashing typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=dashing/a /div div class=field-tags a href=/tag/dashboards typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=dashboards/a /div div class=field-tags a href=/tag/data-visualisation typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=data visualisation/a /div div class=field-tags a href=/tag/drupalplanet typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=drupalplanet/a /div h3 class=field-label Source /h3 div class=field-source a href=http://dashing.io/Dashing/a /div h3 class=field-label Category /h3 div class=field-category a href=/category/tutorial typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Tutorial/a /div

Deeson Online: Drupal 6 Support after Drupal 8 Official Release - what affect will it have on you?

Thu, 07/31/2014 - 13:24
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedh5 class=p1span class=s1The first official a href=http://deeson-online.co.uk/blog/deeson-online-create-drupal-8-personasDrupal 8 release is coming/a. Ok, so it might seem like it's approaching at a snails pace rather than a speeding juggernaut... but it emis/em on its way. So what does this mean if you're still supporting Drupal 6 sites?/span This post should help you identify the issues./h5h2 class=p2What Drupal 6 support will be provided?/h2p class=p2There's quite a lot of discussion in the Drupal community at the moment about what will happen to support for Drupal 6 sites once a href=https://www.drupal.org/drupal-8.0Drupal 8 is officially released./a/pp class=p2Currently Drupal core only a href=https://www.drupal.org/documentation/version-info target=_blanksupports one version/a behind the current stable release. That means that when Drupal 8 has its first stable release (8.0.0) all Drupal 6 sites will no longer have any core support - more specifically security updates./pp class=p2There was an a href=https://www.drupal.org/node/2136029 target=_blankissue/a on the D6 queue around this as well as discussions at DrupalCon Austin, which suggested that this support period should be extended to 12 months.  /pp class=p2Although there was quite mixed feelings about this, ultimately the security team (along with key module maintainers, and representatives of the Drupal security team’s) responded by suggesting that Drupal 6 will be a href=https://www.drupal.org/d6-lts-support target=_blanksupported/a for three months after the first release of Drupal 8. /ph2 class=p2What does this mean for all our current Drupal 6 sites?/h2p class=p2Currently there are only three options available for any current Drupal 6 sites:/polli class=p1span class=s1Migrate any existing Drupal 6 sites to Drupal 7 (this will still be supported until Drupal 9 is released)/span/lili class=p1span class=s1Wait until Drupal 8 is released and migrate your Drupal 6 site using ‘a href=https://www.drupal.org/node/2121299 target=_blankMigrate in Core: Drupal 6 to Drupal 8/a'/span/lili class=p1span class=s1Cross your fingers and hope for the best once Drupal 8 is released!/span/li/olp class=p2iOption 1/i is the obvious choice out of these, as Drupal 7 is stable and has been around for several years now and will be supported until Drupal 9 is released./pp class=p2iOption 2/i will come with its own problems due to the infancy of Drupal 8 as well as contrib modules that you are currently using that haven’t got a Drupal 8 version yet. /pp class=p2Due to the contrib modules not currently supporting a Drupal 8 version, this could delay you migrating and having to wait beyond the three months for a module to have a Drupal 8 version./pp class=p2iOption 3/i is at your own risk, and there are still Drupal 5 sites out there but ultimately this will depend upon what your customers are happy to spend their money on./pp class=p2According to the a href=https://www.drupal.org/project/usage/drupal target=_blankusage stats/a, there are still around 3,800 Drupal 5 sites and just under 198,000 Drupal 6 sites, so there are still many sites which will need to be migrated./ph2 class=p2Why are customers resistant to migrating?/h2p class=p2Our customers are guided (by agencies like us) to keep their sites up-to-date with security releases for core as well as contrib modules etc.  /pp class=p2In situations where a core version is due to have support dropped we would normally recommend our clients to start considering planning a rebuild of their site. This rebuild would be on the latest stable release (currently Drupal 7) so that they can continue to maintain the security support. /pp class=p2This also makes it easier (and ultimately cheaper) for them as the community will continue supporting and maintaining contrib modules for the currently supported versions./pp class=p2Often customers can be resistant to this due to the cost of needing to rebuild their site and migrate their data. This can be understandable, as “iif it aint broke, don’t fix it/i”, or they simply just don’t have the available money to spend on building a new site./pp class=p2At Deeson Group we currently have several sites that are still on Drupal 6, and even one on Drupal 5./pp class=p2As an agency we will continue to support Drupal 6 once the official release of Drupal 8 comes out, but this will probably become more painful as time goes on: less people have experience with this version and problems arise with contrib modules which are no longer supported./ph2 class=p2Our advice?/h2p class=p2Get prepared: Make sure that your site is running on Drupal 7 and if not, start thinking about it and planning the migration to Drupal 7 now./pp class=p2 /p/div/div/divdiv class=field field-name-node-link field-type-ds field-label-hiddendiv class=field-itemsdiv class=field-item evena href=/labs/drupal-6-support-after-drupal-8-official-release-what-affect-will-it-have-youRead more/a/div/div/divdiv class=field field-name-title field-type-ds field-label-hiddendiv class=field-itemsdiv class=field-item even property=dc:titleh2Drupal 6 Support after Drupal 8 Official Release - what affect will it have on you?/h2/div/div/divdiv class=field field-name-meta field-type-ds field-label-hiddendiv class=field-itemsdiv class=field-item evenBy a href=/category/author/mike-davisMike Davis/a | 31st July 2014/div/div/divdiv class=field field-name-field-image field-type-image field-label-hiddendiv class=field-itemsdiv class=field-item evenimg typeof=foaf:Image src=/sites/default/files/labs/drupal678_0.png alt= //div/div/div

PreviousNext: Using Vagrant: A Drupal Themer's Perspective

Thu, 07/31/2014 - 09:02
div class=field field-name-field-summary field-type-text-long field-label-hiddendiv class=field-itemsdiv class=field-item even p dir=ltrOn any project, whether you’re a themer, site builder or developer you will need a local development environment to work in. Even if everyone on a project works on the same OS, chances are people will have different versions of Apache MySQL and PHP, different server configuration and not to mention that the local environment will differ from staging and production environments./p p dir=ltrThis is where a href=http://www.vagrantup.com/Vagrant/a can help. a href=http://www.vagrantup.com/Vagrant/a is an open source setup and configuration tool for virtual machines such as VirtualBox or VMWare (and now with Docker support)./p p dir=ltrIn this post, I give a quick overview of how Vagrant and VM's can improve your developer workflow and consistency./p /div/div/divspan property=dc:title content=Using Vagrant: A Drupal Themer#039;s Perspective class=rdf-meta/span

Matthew Saunders: Anatomy of a Drupalcamp - The Tools

Thu, 07/31/2014 - 03:20
!-- google_ad_section_start --div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpI've been involved with Drupalcamp Colorado since 2007. Sometimes I've had a significant role, other times I've taken a bit more of a back seat. I was also pretty heavily involved in Drupalcon when it was in Denver. Over the last 8 months or so, I've had quite a bit more insight into the Cons themselves through my interaction with the Drupal Association. This last year I've been the project manager for Drupalcamp Colorado 2014. This has left me with with some personal insights that might help others wanting to run a camp./p p/p/div/div/div!-- google_ad_section_end --div class=field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-hiddendiv class=field-itemsdiv class=field-item evena href=/drupal/taxonomy/term/6drupal/a/divdiv class=field-item odda href=/drupal/category/tags/drupalcamp-coloradodrupalcamp colorado/a/divdiv class=field-item evena href=/drupal/category/tags/how-do-camphow to do a camp/a/div/div/div

Stanford Web Services Blog: Agile Project Management and its flavors: where does Scrum end and Kanban begin?

Wed, 07/30/2014 - 22:18
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedp class=summaryAgile has become a big buzz word recently in the project management world. In this post, I'll try to clarify where some of the lines are being blurred between terms like Agile and Scrum, and what some of these terms actually mean./p pKeep in mind while reading this that I am primarly trained in Scrum, so my descriptions of other Agile methodologies are only decently informed. :)/p h2What is Agile Project Management?/h2 pFrom the ever-present wikipedia:/p/div/div/div

Drupal 8 and iOS: REST Export for Drupal 8 View

Wed, 07/30/2014 - 21:25
span class=field field-node--title field-name-title field-type-string field-label-hidden data-quickedit-field-id=node/64/title/en/rssREST Export for Drupal 8 View/span div class=field field-node--body field-name-body field-type-text-with-summary field-label-hidden data-quickedit-field-id=node/64/body/en/rss div class=field-items div class=field-item property=schema:texth3strongspanSwiss knife of Drupal 8’s REST api/span/strong/h3 p style=margin: 0px; font-size: 11px; font-family: Helvetica;span style=letter-spacing: 0.0pxHi! Drupal Community./span/p p style=margin: 0px; font-size: 11px; font-family: Helvetica;span style=letter-spacing: 0.0pxAs we all are working very hard for upcoming major release I am feeling excited to write this. This blog is all about bREST Export /bfeature of Drupal 8’ view. Let me first brief you about what is the REST api and than I will explain you how REST Export is important for building custom REST api for your Drupal 8./span/p p style=margin: 0px; font-size: 11px; font-family: Helvetica;span style=letter-spacing: 0.0pxREST (Representational State Transfer) is a web service architecture to expose your resources to outer world. It follows bhttp/b architecture to expose the resources of your web site i.e you have /spanspan style=font-family: Menlo; letter-spacing: 0px;GET, POST, PATCH,DELETE/spanspan style=letter-spacing: 0.0px etc methods to manipulate resources with out web interface. In context to Drupal , a node will have /spanspan style=font-family: Menlo; letter-spacing: 0px;GET/spanspan style=letter-spacing: 0.0px method that will require node id and it will return you details related to that node in /spanspan style=font-family: Menlo; letter-spacing: 0px;XML, JSON or HAL + JSON /spanspan style=letter-spacing: 0.0pxformat. If you have ever used REST api for some famous web services like twitter, facebook then you will find those API very well defined for example /spanspan style=font-family: Menlo; letter-spacing: 0px; GET on /status/spanspan style=letter-spacing: 0.0px will give you current status details and /spanspan style=font-family: Menlo; letter-spacing: 0px;GET on /status/comments /spanspan style=letter-spacing: 0.0pxwill give you comments posted on your current status. In context to Drupal we should get node details with /spanspan style=font-family: Menlo; letter-spacing: 0px;GET on  /node/{id}/spanspan style=letter-spacing: 0.0px and comments on particular node with /spanspan style=font-family: Menlo; letter-spacing: 0px;GET on /node/{id}/comments/spanspan style=letter-spacing: 0.0px. In Drupal 8 we have first REST endpoint but we don’t have second. Drupal has opt for different approach. In Drupal you can use contextual filters on view to filter content as per your parameters passed in URL . The same concept we can applies to REST Export . We can attach a REST Export to a view that only show comments with contextual filter with nodeID as parameter. So the rest export will return XML or JSON for comments related to particular node./span/p p style=margin: 0px; font-size: 11px; font-family: Helvetica;span style=letter-spacing: 0.0pxHere is a screenshot for it./span/p img alt=Contextual Filter with REST Export data-editor-file-uuid=5a4c478c-ebf5-4e29-894a-7425a9a49e62 height=344 src=http://tntfoss-vivekvpandya.rhcloud.com/sites/default/files/inline-images/contextualFilter.png width=1198 /p /p p style=margin: 0px; font-size: 11px; font-family: Helvetica;span style=letter-spacing: 0.0pxWe can use REST Export with taxonomy_terms for particular vocabulary as parameter. This concept will make Drupal 8 REST api robust and it also provides good example where view modules and REST module works to gather to provide developer flexibility to develop custom REST api for their Drupal site./span/p /div /div /div div class=field field-node--field-tags field-name-field-tags field-type-taxonomy-term-reference field-label-above clearfix data-quickedit-field-id=node/64/field_tags/en/rss h3 class=field-labelTags: /h3 ul class=links li class=taxonomy-term-reference-0a href=/taxonomy/term/3 property=schema:aboutDrupal Planet/a/li /ul /div div class=field field-node--comment field-name-comment field-type-comment field-label-hidden data-quickedit-field-id=node/64/comment/en/rss div class=field-items div class=field-item rel=schema:commentsection id=comments class=comment-wrapper /section /div /div /div

Drupal core announcements: Drupal 8 alpha 14 on August 6th

Wed, 07/30/2014 - 19:23
pThe next alpha for Drupal 8 will be alpha 14! Here is the schedule for the alpha release./p table tr thAugust 3rd-5th/th tdOnly critical and major patches committed/td /tr tr thAugust 6th, 2014/th tdDrupal 8.0.0-alpha14 released. Emergency commits only./td /tr /table p(Note that there are a href=https://groups.drupal.org/node/434233two concurrent Drupal 8 sprints/a Aug. 7-10, so we aren't planning to have the usual disruptive patch window following this alpha.)/p

Appnovation Technologies: 3 Reasons to use Drupal for Enterprise Online Portal Dev

Wed, 07/30/2014 - 17:36
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encoded Enterprise Content Management or ECM minimally encompasses Document Management, Collaboration, Records Management and Web Content Management. An enterprise online portal is a specially designed website that acts as an entry point for bringing information together from all these diverse sources in a uniform way. Building an enterprise online portal presents a unique set of challenges, including integrated authentication, governance of content added by multiple content contributors, migration of legacy data, and hosting within an enterprise infrastructure among others. /div/div/divdiv class=field field-name-field-blog-header-image field-type-image field-label-hiddendiv class=field-itemsdiv class=field-item evena href=/blog/3-reasons-use-drupal-enterprise-online-portal-devimg typeof=foaf:Image src=http://www.appnovation.com/sites/default/files/styles/blog_listing_page_header/public/3reasons-enterprisedrupaldev.jpg?itok=m9PX2Xmd width=680 height=200 alt= //a/div/div/divdiv class=sharethis-buttonsdiv class=sharethis-wrapperspan st_url=http://www.appnovation.com/blog/3-reasons-use-drupal-enterprise-online-portal-dev st_title=3 Reasons to use Drupal for Enterprise Online Portal Dev class=st_facebook/span span st_url=http://www.appnovation.com/blog/3-reasons-use-drupal-enterprise-online-portal-dev st_title=3 Reasons to use Drupal for Enterprise Online Portal Dev class=st_twitter/span span st_url=http://www.appnovation.com/blog/3-reasons-use-drupal-enterprise-online-portal-dev st_title=3 Reasons to use Drupal for Enterprise Online Portal Dev class=st_sharethis/span script type='text/javascript'var switchTo5x = false;/scriptscript type='text/javascript' src='http://w.sharethis.com/button/buttons.js'/scriptscript type='text/javascript'stLight.options({publisher:dr-75626d0b-d9b4-2fdb-6d29-1a20f61d683});/script/div/div

Dcycle: New Drupal 7 project checklist

Wed, 07/30/2014 - 16:10
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpI had this checklist documented internally, but I keep referring back to it so I'll make it available here in case anyone else needs it. The idea here is to document a minimum (not an ideal) set of modules and tasks which I do for almost all projects./p h2Questions to ask of a client at the project launch/h2 ul liIs your site bilingual? If so is there more than one domain?/li liWhat type of compatibility do you need: tablet, mobile, which versions of IE?/li liHow do you see your post-launch support and core/module update contract?/li liDo you need SSL support?/li liWhat is your hosting arrangement?/li liDo you have a contact form?/li liWhat is your anti-spam method? Note that a href=http://www.popsci.com/article/technology/rip-captcha?src=SOCamp;dom=fbCAPTCHA is no longer useful/a; I like a href=https://mollom.comMollom/a, but it's giving me more and more false positives with time./li liIs WYSIWYG required? I strongly suggest a href=http://readwrite.com/2012/04/17/why-you-need-to-learn-markdownusing Markdown instead/a./li liConfirm that all emails are sent in plain text, not HTML. If you're sending out HTML mail, a href=http://www.aweber.com/blog/email-marketing/plain-text-vs-html-email-2014.htmdo it right/a./li liDo you need an on-site search utility? If so, some thought, and resources, need to go into it or it will be frustrating./li liWhat kind of load do you expect on your site (anonymous and admin users)? This information can be used for load testing./li liIf you already have a site, should old paths of critical content map to paths on the new site?/li liShould users be allowed to create accounts (with spam considerations, and see if an admin should approve them)./li /ul h2a href=http://www.scrumalliance.org/community/articles/2013/september/what-is-sprint-zeroSprint Zero/a: starting the project/h2 pHere is what should get done in the first Agile sprint, aka Sprint Zero:/p ul liIf you are using a href=http://dcycleproject.org/blog/46/continuous-deployment-drupal-stylecontinuous integration/a, a Jenkins job for tracking the master branch: this job should fail if any test fails on the codebase, or if quality metrics (a href=https://www.drupal.org/project/codercode review/a, for example, or a href=http://pdepend.orgpdepend/a metrics) reach predefined thresholds./li liA Jenkins job for pushing to dev. This is triggered by the first job if tests pass. It pushed the new code to the dev environment, and updates the dev environment's database. a href=http://dcycleproject.org/blog/48/do-not-clone-databaseThe database is never cloned/a; rather, a a href=http://dcycleproject.org/blog/44/what-site-deployment-modulesite deployment module/a is used./li liAn issue queue is set up and the client is given access to it, and training on how to use it./li liA wiki is set up./li liA dev environment is set up. This is where the code gets pushed automatically if all tests pass./li liA prod environment is set up. This environment is normally updated manually after each end of sprint demo./li liA git repo is set up with a basic Drupal site./li liA custom module is set up in codesites/*/modules/custom/code: this is where custom function go./li liA a href=http://dcycleproject.org/blog/44/what-site-deployment-modulesite deployment module/a in codesites/all/modules/custom/code. All deployment-related code and dependencies go here. A a href=http://dcycleproject.org/blog/30/basic-testcode.test/code/a file and an a href=http://dcycleproject.org/blog/65/basic-install-file-deployment-modulecode.install/code/a should be included./li liA site development module is set up in codesites/*/modules/custom/code, which is meant to contain all modules required or useful for development, as dependencies./li liA custom theme is created./li liAn initial feature is created in codesites/*/modules/features/code. This is where all your features will be added./li liA sites/*/modules/patches folder is created (with a README.txt file, to make sure it goes into git). This is where core and contrib patches should go. Your site's maintainers should apply these patches when core or contrib modules are updated. Patch names here should include the node id and comment number on Drupal.org./li /ul h2Basic module list (always used)/h2 ul lia href=https://drupal.org/project/viewsviews/a/li lia href=https://drupal.org/project/contextcontext/a/li lia href=https://drupal.org/project/strongarmstrongarm/a/li lia href=https://drupal.org/project/admin_menuadmin_menu/a/li lia href=https://drupal.org/project/markdownmarkdown/a/li lia href=https://drupal.org/project/transliterationtransliteration/a/li lia href=https://drupal.org/project/globalredirectglobalredirect/a/li lia href=https://drupal.org/project/redirectredirect/a/li lia href=https://drupal.org/project/config_builderconfig_builder/a, almost always useful to create a single form allowing clients to change site variables./li lia href=https://drupal.org/project/contextcontext/a/li lia href=https://drupal.org/project/featuresfeatures/a/li lia href=https://drupal.org/project/logintobogganlogintoboggan/a/li /ul h2Development modules (not enabled on production)/h2 pI normally create a custom development module with these as dependencies:/p ul lia href=https://drupal.org/project/diffdiff/a/li lia href=https://drupal.org/project/develdevel/a/li lirealistic_dummy_content_api (part of a href=https://drupal.org/project/realistic_dummy_contentrealistic_dummy_content/a)/li lia href=https://drupal.org/project/codercoder/a/li licontext_ui (part of a href=https://drupal.org/project/contextcontext/a)/li liviews_ui (part of a href=https://drupal.org/project/viewsviews/a)/li lia href=https://drupal.org/project/develdevel/a/li lia href=https://drupal.org/project/devel_themerdevel_themer/a/li lia href=https://drupal.org/project/masquerademasquerade/a/li lia href=https://drupal.org/project/search_krumosearch_krumo/a/li lia href=https://drupal.org/project/simpletest_turbosimpletest_turbo/a/li lidevel_generate (part of a href=https://drupal.org/project/develdevel/a)/li liconfig_builder_ui (part of a href=https://drupal.org/project/config_builderconfig_builder/a)/li /ul h2Multilingual modules/h2 ul lia href=https://drupal.org/project/i18ni18n/a/li lia href=https://drupal.org/project/potxpotx/a/li lia href=https://drupal.org/project/l10n_updatel10n_update/a/li /ul h2Launch checklist/h2 ul liDesign a custom 404, error and maintenance page./li liPath, alias and permalink strategy. (Might require a href=https://drupal.org/project/pathautopathauto/a.)/li liThink of adding revisions to content types to avoid clients losing their data./li liDon't display errors on production./li liOptimize CSS, JS and page caching./li liViews should be cached./li liSystem messages are properly themed./li liPrevent very simple passwords./li lia href=http://linuxdev.dk/blog/sending-drupal-log-enteries-syslogUsing syslog instead of dblog/a on prod/li /ul h2In conclusion/h2 pMost shops, and most developers, have some sort of checklist like this. Mine is not any better or worse than most, but can be a good starting point. Another note: I've seen at least three Drupal teams try, and fail, to implement a Drupal Starter kit for Company XYZ and keep it under version control. The problem with that approach, as opposed to a checklist, is that it's not lightweight enough: it is a software product which needs maintenance, and after a while no one maintains it./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=/tags/blog typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=blog/a/divdiv class=field-item odd rel=dc:subjecta href=/tags/planet typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=planet/a/div/div/div

Modules Unraveled: 113 - Updates on the WalkHub project with Kristof Van Tomme - Modules Unraveled Podcast

Wed, 07/30/2014 - 15:39
div class=field field-name-field-image field-type-image field-label-hidden view-mode-rssdiv class=field-itemsfigure class=clearfix field-item evenimg typeof=foaf:Image class=image-style-podcast-default src=http://modulesunraveled.com/sites/default/files/styles/podcast_default/public/podcast/image/kristofvantomme_0.jpg?itok=skBn-6Ib width=300 height=241 alt=Photo of Kristof Van Tomme //figure/div/divspan class=submitted-byPublished: Wed, 07/30/14/spandiv class=field field-name-field-podcast-file field-type-file field-label-hidden view-mode-rssdiv class=field-itemsdiv class=field-item evendiv class=mediaelement-audioaudio src=http://traffic.libsyn.com/modulesunraveled/113_-_Updates_on_the_WalkHub_project_with_Kristof_Van_Tomme_-_Modules_Unraveled_Podcast.mp3 class=mediaelement-formatter-identifier-1406738818-0 controls=controls /audiodiv class=mediaelement-download-linka href=http://traffic.libsyn.com/modulesunraveled/113_-_Updates_on_the_WalkHub_project_with_Kristof_Van_Tomme_-_Modules_Unraveled_Podcast.mp3Download this episode/a/div/div/div/div/divdiv class=field field-name-body field-type-text-with-summary field-label-hidden view-mode-rssdiv class=field-itemsdiv class=field-item even property=content:encodedh2Walkhub/h2 ulliYou’ve been on the show before to talk about walkthrough.it, but some things have changed since then. So, can you give us an overview of what Walkhub is?/li liWhat are walkthroughs?/li liWhat is your pricing model on Walkhub?/li liYou’re in the process of a second Indiegogo campaign, but what was the first one for? ulliHow did your first Indiegogo campaign go?/li /ul/li liWhat is the current Indiegogo camaipn for? ulliWhat’s the status on that?/li /ul/li liWhy are you doing another campaign? Why aren’t you out of BETA yet? What’s the story there?/li /ulh2AMA/h2 ulliYou just did an AMA on Reddit yesterday. How did that go?/li liWhat were some common questions? Or ones that stuck out to you?/li /ul/div/div/divsection class=field field-name-field-items-mentioned field-type-link-field field-label-above view-mode-rssh2 class=field-labelEpisode Links:nbsp;/h2div class=field-itemsdiv class=field-item evena href=https://www.drupal.org/u/kvantomme target=_blank rel=nofollowKristof on drupal.org/a/divdiv class=field-item odda href=http://twitter.com/kvantomme target=_blank rel=nofollowKristof on Twitter/a/divdiv class=field-item evena href=https://www.indiegogo.com/projects/walkhub-tutorials-designed-for-the-web target=_blank rel=nofollowIndiegogo Campaign/a/divdiv class=field-item odda href=http://walkhub.net target=_blank rel=nofollowWalkhub.net/a/divdiv class=field-item evena href=http://www.reddit.com/r/drupal/comments/2by890/i_am_kristof_van_tomme_i_work_on_walkhub_a_gps/?sort=top target=_blank rel=nofollowReddit AMA/a/divdiv class=field-item odda href=https://t.co/FXv4GLccRA target=_blank rel=nofollowWalkhub Demo on YouTube/a/div/div/sectionsection class=field field-name-field-tags field-type-taxonomy-term-reference field-label-above view-mode-rssh2 class=field-labelTags:nbsp;/h2ul class=field-itemsli class=field-item evena href=/tags/documentation typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=documentation/a/lili class=field-item odda href=/tags/walkhub typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Walkhub/a/lili class=field-item evena href=/planet-drupal typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=planet-drupal/a/li/ul/section

Phase2: Amazing Design Through Empathy

Wed, 07/30/2014 - 15:10
h3 style=text-align: center;What can web designers learn from design of a timepiece for the blind?/h3 pnbsp;/p p dir=ltr style=text-align: center;img class=aligncenter alt= src=https://lh5.googleusercontent.com/T944GxKmZxNyC0cLT9K46XVw3K-Xg3k_j_r-4TFy-8TFMHudY-92TjmejfR27e6_DLKFaJp0bodLviKeOcV3iiHvjz9JDW73cVaVVNULpXxoUObY97jlFCCrjagVAWAoEA width=624px; height=351px; //p p dir=ltrThe difference between a good product and an amazing one boils down to one thing: Empathy. Developing an understanding of your users that is so deep that you can feel what they feel enables you to design products and experiences that will truly resonate with your users./p p dir=ltrThrough illustrative and entertaining examples, I will take you on a tour of the the highs that are achievable through empathic design, and some of the depths that designers sink to when they design without empathy. You#8217;ll learn how to activate the empathy that is already within you, and how you can use that power to improve all aspects of your product design, from requirements gathering to user research, and everything in between./p p dir=ltr h3 dir=ltrJoin me for my presentations on this topic this week:/h3 p dir=ltr style=text-align: center;img class=aligncenter alt= src=https://lh4.googleusercontent.com/AbJNd5k7WK4g_LEUIcPf-UFfFDtIsNfkAvPRvtIYbCj457whAprpBKP3lfzTGyhMrjv02sDPlr2SrHyjq64FuRs5-mYjDjZfE5X6l8wKJC0SP-G6RmLtGE9nuS2lg-HkNA width=624px; height=385px; //p pnbsp;/p p dir=ltr style=text-align: center;strongDrupal Capital Camp amp; Gov’t Days/strong/p p dir=ltr style=text-align: center;a href=http://2014.capitalcampandgovdays.com/capital-camp-and-gov-days/sessions/amazing-design-through-empathyWednesday, July 30 from 11:15AM #8211; Noon in room F1/F2/a/p p dir=ltr style=text-align: center;strongDesign4Drupal Boston 2014/strong/p p dir=ltr style=text-align: center;a href=http://boston2014.design4drupal.org/session/amazing-design-through-empathySaturday, August 2 from 3:30 #8211; 4:30pm in room 141/a/p pnbsp;/p

Code Karate: Drupal 7 Panelizer Module

Wed, 07/30/2014 - 14:57
div class=field field-name-field-episode-number field-type-number-integer field-label-abovediv class=field-labelEpisode Number:nbsp;/divdiv class=field-itemsdiv class=field-item even160/div/div/divdiv class=field field-name-field-ddod-video field-type-file field-label-hiddendiv class=field-itemsdiv class=field-item evenimg src=http://codekarate.com/sites/default/files/styles/large/public/media-youtube/0l9QsmbPtrw.jpg?itok=LPOb_YeJ alt=Drupal 7 Panelizer module - Daily Dose of Drupal episode 160 //div/div/divdiv class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpThe Drupal 7 a href=https://www.drupal.org/project/panelizer rel=nofollowPanelizer Module/a allows you to panelize (or use panels) for any entity type on your Drupal 7 site. This allows you to change the layout of a node page, user page, or any other type of entity that you can think of. Although it's a little more complicated to set up, the Panelizer module allows you to set up a slimmed down panels interface for other site managers to use./p/div/div/divdiv class=field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-abovediv class=field-labelTags:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/category/tags/drupalDrupal/a/divdiv class=field-item odda href=/category/tags/drupal/contrib/panelsPanels/a/divdiv class=field-item evena href=/category/tags/drupal/drupal-7Drupal 7/a/divdiv class=field-item odda href=/category/tags/drupal/site-buildingSite Building/a/divdiv class=field-item evena href=/category/tags/drupal-planetDrupal Planet/a/div/div/div

Forum One: Double the Fun: DC Drupalists Unite!

Wed, 07/30/2014 - 10:17
pimg class=alignright size-medium wp-image-2723 style=float: right; src=http://forumone.com/wp-content/uploads/2014/05/F1-drupal-sticker-250x250.png alt=F1-drupal-sticker //p pWhat could be more fun than summer camp? A Drupal summer camp, of course. And what could be more fun than a Drupal summer camp? Why, emtwo Drupal summer camps/em, of course – merged into one!/p pThis week we#8217;re witnessing the unity of two long-awaited DC Drupal events with the joining of CapitalCamp and Drupal 4 Gov into a single event – a href=http://2014.capitalcampandgovdays.com/CapitalCamp and Gov Days/a – and we#8217;re enthused by all the possibilities that will come from having our local Drupal friends all in one place!/p h2On Your Mark, Get Set#8230;/h2 pThis year we#8217;re doing something brand new at CapitalCamp – we#8217;re sprinting! That#8217;s right, Forum One is hosting a Coder Lounge and Code Sprint room (Rooms C1 amp; C2) for fellow Drupalists to collaborate and bang out code together. This dedicated room will be available throughout CapitalCamp and Gov Days for developers to meet, greet, and collaborate on Drupal 8 code sprints. Developers will be convening in the mornings and afternoons to introduce sprints, identify issues, and get each other up and running#8230;er, sprinting. Whether you#8217;re new to code sprints or a seasoned veteran, come join us and contribute to the future of Drupal!/p h2Expert Sessions/h2 pOur all-star team is proud to be presenting five sessions to the DC Drupal community this year!/p pOnb Wednesday/b, a href=http://forumone.com/staff/dan-mouyard/Dan Mouyard/a presents on a href=http://2014.capitalcampandgovdays.com/capital-camp-and-gov-days/sessions/advanced-theming-tacticsAdvanced Theming Tactics/a, covering how to follow the Drupal 8 CSS Architecture Guidelines while theming a Drupal 7 site, including:/p ul liControlling Drupal’s markup/li liCreating custom layouts/li liOrganizing your Sass partial structure/li liUsing SMACSS to write maintainable CSS/li /ul pLater in the day, a href=http://forumone.com/staff/william-hurleyWilliam Hurley/a will be demystifying acronyms and bureaucratese with his session on a href=http://2014.capitalcampandgovdays.com/capital-camp-and-gov-days/sessions/deploying-secure-drupal-sitesDeploying Secure Drupal Sites/a, providing a roadmap for developers and IT managers to meet government security obligations while laying out specific issues that might be encountered, and how to overcome them./p pOn strongThursday/strong afternoon, a href=http://forumone.com/staff/michael-rader target=_blankMichael Rader/a, a href=http://forumone.com/staff/sarah-lenguyen target=_blankSarah LeNguyen/a, and a href=http://forumone.com/staff/john-schneider target=_blankJohn Schneider/a are excited to present a href=http://2014.capitalcampandgovdays.com/capital-camp-and-gov-days/sessions/hot-planet-cool-site-relaunching-globalchangegov target=_blankHot Planet, Cool Site: Relaunching GlobalChange.gov/a – the inside story of the design and relaunch of this major website under the U.S. Global Change Research Program (USGCRP) that focuses on assessing the impacts of climate change in the United States. Relaunching GlobalChange.gov was a href=http://forumone.com/insights/relaunching-globalchange-gov/ target=_blanka big project that garnered big praise/a from the national press (and even the White House!), so we#8217;re thrilled to be presenting on the site with our client at USGCRP for the first time./p pAnd also on Thursday, a href=http://forumone.com/staff/kalpana-goelKalpana Goel/a will join with William Hurley to present a session on span style=color: #1155cc; data-sheets-value=[null,2,quot;Routing in Drupal 8quot;] data-sheets-userformat=[null,null,1049089,[null,0],null,null,null,null,null,null,null,null,0,null,null,null,null,null,null,null,null,null,null,1] data-sheets-formula==HYPERLINK(quot;http://2014.capitalcampandgovdays.com/capital-camp-and-gov-days/sessions/routing-drupal-8quot;,quot;Routing in Drupal 8quot;)a class=in-cell-link href=http://2014.capitalcampandgovdays.com/capital-camp-and-gov-days/sessions/routing-drupal-8 target=_blankRouting in Drupal 8/a/span to explain the many parts of routing, how to convert from the Drupal 7 menu system to the Drupal 8 routing system, as well as defining local tasks, local actions, and contextual links in Drupal 8./p pBut that#8217;s not all, because on strongFriday/strong, William returns for a CapitalCamp threepeat to present his final session of the conference: a href=http://2014.capitalcampandgovdays.com/capital-camp-and-gov-days/sessions/automate-all-thingsAutomate All The Things/a – addressing why you need to be using automation, the tools you can use to make your development faster, easier and less error-prone, and common pitfalls that you might encounter along the way./p h2Seeing Red/h2 pAs at DrupalCon last month, you#8217;ll find Forum One staff in the hallways, sessions, and BoFs wearing our red shirts. Among our other attendees this week:/p ul lia href=http://forumone.com/staff/cindy-lopez-yusufCindy Lopez-Yusuf/a and a href=http://forumone.com/staff/ned-bakerNed Baker/a will be mingling with Drupal job hunters at Wednesday#8217;s noontime networking mixer./li lia href=http://forumone.com/staff/kerry-thellKerry Thell/a, a href=http://forumone.com/staff/andrew-cohenAndrew Cohen/a, a href=https://forumone.com/staff/riccardo-de-marchi-trevisan/Riccardo de Marchi Trevisan/a and a href=http://forumone.com/staff/eric-davisEric Davis/a will be representing our Business Development team throughout the week./li lia href=http://forumone.com/staff/keenan-hollowayKeenan Holloway/a and a href=http://forumone.com/staff/martin-franziniMartin Franzini/a will round out our tech and UX folks on site./li /ul pOnce again, we#8217;re excited as always to be actively participating in our hometown Drupal camps and are looking forward to sharing our knowledge, meeting new Drupal friends, and learning about new projects for us to explore./p pstrongWill you be at CapitalCamp and Gov Days this week? Stop by the Forum One Coder Lounge to say hi, or drop us a line at a href=#x6d;#x61;#x69;#x6c;#x74;#x6f;#58;#109;arketi#x6e;#x67;#x40;#x66;#x6f;#x72;#117;#109;one.co#x6d;#x6d;#97;r#x6b;#101;t#x69;#x6e;g#64;#x66;#111;r#x75;#x6d;on#x65;#46;c#x6f;#x6d;/a – we#8217;d love to meet up with you at Camp this year!/strong/p

Janez Urevc: Progress of Disqus project in GSoC 2014

Wed, 07/30/2014 - 08:57
div class=field field-name-body field-type-text-with-summary field-label-hidden view-mode-rssdiv class=field-itemsdiv class=field-item even property=content:encodedp iframe allowfullscreen= frameborder=0 height=360 src=//www.youtube.com/embed/H0md3e6NwcE width=640/iframe/p pFor more info about the project and it's progress see a href=https://groups.drupal.org/node/434538the post on groups.drupal.org/a./p /div/div/div

DrupalCon Amsterdam: Become a Mentor at DrupalCon Amsterdam

Wed, 07/30/2014 - 08:29
div class=field field--name-body field--type-text-with-summary field--label-hiddendiv class=field__itemsdiv class=field__item evenpFrom volunteering your time at events to making a donation, there are plenty of ways to give back to the Drupal project - but by and large, one of the most important things individual Drupalers can do is donate their expertise and become a mentor./p pCurrently, we have only 24 mentors signed up, and we need 40 mentors to make DrupalCon Amsterdam a success. We’re anticipating several hundred individuals sign up for to join the a href=https://amsterdam2014.drupal.org/sprintssprint on Friday/a and mentorship is a great way to help people new to contributing learn Drupal and, eventually, contribute back valuable time, resources, and code to the project./p pTo become a mentor, a href=https://amsterdam2014.drupal.org/sign-up-to-mentorclick here to sign up/a. We need mentors for all levels of Drupal expertise, from teaching absolute Drupal beginners to assisting advanced users how to navigate the Drupal.org issue queue. /p h3Need a ticket to attend?/h3 pThere are a limited number of free DrupalCon ticket coupons available for people who sign up to mentor, and the deadline to sign up and request a ticket is Friday, 1 August. Don't miss out on an opportunity to help others and get your ticket sponsored!/p pWe’re looking forward to the Amsterdam a href=https://amsterdam2014.drupal.org/mentored-core-sprintMentored Code Sprint/a and the a href=https://amsterdam2014.drupal.org/first-time-sprinter-workshopFirst-Time Sprinter Workshop/a. We hope that you’ll join us there!/p p--br / Cathy Theys (YesCT)br / Brian Gillbert (realityloop)br / Ruben Teijeiro (rteijeiro)br / DrupalCon Amsterdam Sprint Leads/p /div/div/div

Drupal Association News: Announcing Our Newest Staff Members

Tue, 07/29/2014 - 22:49
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpWe’re thrilled to announce the addition of four new staff members to the Drupal Association team. Please help us give a warm welcome to Oliver Davies, Archie Brentano, Phillip Bulebar, and Ryan Aslett!/p pimg alt=Oliver Davies photo class=left src=https://assoc.drupal.org/files/OliverDavies.jpg style=width: 75px; height: 74px; /Oliver (a href=https://www.drupal.org/u/opdaviesopdavies/a) started with the Drupal Association in May of this year as a Drupal.org Developer. He has been active in the Drupal community for several years, has contributed numerous patches and modules, and prior to working with the Drupal Association, he contributed to the accessibility of the project. Since joining several months ago, Oliver has already made tremendous contributions to the Association and has seized the opportunity to give back to the community in any way he can./p pimg alt=Archie Brentano class=left src=https://assoc.drupal.org/files/Archie-Brentano_0.png style=width: 75px; height: 77px; /Archie Brentano (a href=https://www.drupal.org/u/isntallisntall/a) is the Association’s new DevOps Engineer. Previously, Archie worked as a Multnomah County System Administrator, focusing on enterprise Drupal sites on Amazon Web Services infrastructure. Archie will be concentrating on the infrastructure side of Drupal.org, and has joined the organization because he was impressed by the Drupal community and saw a perfect opportunity to learn more about Drupal and become better involved./p pimg alt=Phillip Bulebar photograph class=left src=https://assoc.drupal.org/files/Photo%20on%207-28-14%20at%201.24%20PM.jpg style=width: 75px; height: 62px; /Phillip Bulebar (a href=https://www.drupal.org/u/pbulebarpbulebar/a) comes to the Drupal Association with a long and successful track record in marketing and web content management. As the Association’s new Content Manager, Phillip will be creating and optimizing content on Drupal.org to help ensure it meets the needs of visitors. Prior to joining the Association, Phillip held management roles for companies including Nike, Nautilus and other specialty retailers, with much of his focus on creating, delivering, analyzing and optimizing digital content./p pimg alt=Ryan Aslett photograph class=left src=https://assoc.drupal.org/files/meinstagrammed.jpg style=width: 75px; height: 75px; /Ryan Aslett (a href=https://www.drupal.org/u/mixologicmixologic/a) is joining the Drupal Association as the organization’s first QA Engineer. Previously, Ryan worked as a freelance full stack Drupal developer in the Portland, Oregon area; he has a wide variety of experience in everything from working with Perl to engineering composting toilets in Ecuador and Colombia. At the Association, Ryan will be improving BDD tests for Drupal.org websites, and we’re thrilled to welcome him on board./p pPlease help us give a warm welcome to our four newest staff members. We’re thrilled to have them on board and know they’ll do great things for the Drupal community./p /div/div/div

Drupal Easy: Drupal Web Developer Career Series Post 4: View from the Summit

Tue, 07/29/2014 - 20:46
pemThis is final installment of our four-part blog post series that encapsulates the advice, tips and must-do elements of career building in the Drupal Community from the panel of experts collected for a href=https://austin2014.drupal.org/session/drupal-career-trailhead-embark-path-successDrupalEasy’s DrupalCon Austin session; Drupal Career Trailhead; Embark on a Path to Success/a. It will be listed with other career resources for reference at the a href=http://drupaleasy.com/academy/dcsp/course-informationDrupalEasy Academy Career Center/a.br / /em/p !-- rdf:RDF xmlns:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# xmlns:dc=http://purl.org/dc/elements/1.1/ xmlns:trackback=http://madskills.com/public/xml/rss/module/trackback/ rdf:Description rdf:about=http://drupaleasy.com/blogs/gwendolyn/2014/07/drupal-web-developer-career-series-post-4-view-summit dc:identifier=http://drupaleasy.com/blogs/gwendolyn/2014/07/drupal-web-developer-career-series-post-4-view-summit dc:title=Drupal Web Developer Career Series Post 4: View from the Summit trackback:ping=http://drupaleasy.com/trackback/684 / /rdf:RDF -- pa href=http://drupaleasy.com/blogs/gwendolyn/2014/07/drupal-web-developer-career-series-post-4-view-summit target=_blankread more/a/pdiv class=feedflare a href=http://feeds.feedburner.com/~ff/DrupalEasy?a=TMuc4-s9aeU:9wF93l07QHE:yIl2AUoC8zAimg src=http://feeds.feedburner.com/~ff/DrupalEasy?d=yIl2AUoC8zA border=0/img/a a href=http://feeds.feedburner.com/~ff/DrupalEasy?a=TMuc4-s9aeU:9wF93l07QHE:qj6IDK7rITsimg src=http://feeds.feedburner.com/~ff/DrupalEasy?d=qj6IDK7rITs border=0/img/a /divimg src=http://feeds.feedburner.com/~r/DrupalEasy/~4/TMuc4-s9aeU height=1 width=1/

Drupal Easy: DrupalEasy Podcast 136: Wolves (Jason Smith - Weather.com)

Tue, 07/29/2014 - 20:29
div class=field field-type-link field-field-embed a href=http://podcasts.drupaleasy.com/DrupalEasy_ep136_20140728.mp3 rel=enclosureDownload Podcast 136/a /div pJason Smith (a href=https://www.drupal.org/user/605368Silcon.Valet/a), Solutions Architect for a href=http://www.mediacurrent.comMediacurrent/a, joins Mike, and Ryan to talk about one of the highest-trafficked sites in the world re-launching on Drupal: a href=http://weather.comweather.com/a. Other topics discussed include the Acquia CEO’s recent Reddit AMA, sprint nutrition, and Damien McKenna./p pa href=http://drupaleasy.com/podcast/2014/07/drupaleasy-podcast-136-wolves-jason-smith-weathercom target=_blankread more/a/pdiv class=feedflare a href=http://feeds.feedburner.com/~ff/DrupalEasy?a=Dt4xL7jpok0:xZjeMKIrSg8:yIl2AUoC8zAimg src=http://feeds.feedburner.com/~ff/DrupalEasy?d=yIl2AUoC8zA border=0/img/a a href=http://feeds.feedburner.com/~ff/DrupalEasy?a=Dt4xL7jpok0:xZjeMKIrSg8:qj6IDK7rITsimg src=http://feeds.feedburner.com/~ff/DrupalEasy?d=qj6IDK7rITs border=0/img/a /divimg src=http://feeds.feedburner.com/~r/DrupalEasy/~4/Dt4xL7jpok0 height=1 width=1/