Drupal Planet

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

4Sitestudios.com Drupal Blog: Inventing the future of… websites.

Fri, 09/05/2014 - 11:14am
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedp dir=ltrYou know how every box of LEGOreg; comes with that pretty picture on the front of what itrsquo;s supposed to look like at the end...and how you might build it that way once, just once, to see how it looks, before tearing it down and making a spaceship out of the oxcart? Itrsquo;s the same with websites. We all start off with this great picture in our mind of what a website will look like. And yes, the website might actually make it to that glorious utopia...until someone decides, no, they donrsquo;t actually like that thing there. No, this should be bigger. Or smaller. ldquo;I know I asked for an oxcart, but please tear it down and make a spaceship out of it.rdquo;/pp dir=ltrAt 4Site, when we go about lsquo;designingrsquo; a website, we think of the website as a sum of parts--planning ahead to how the sitersquo;s going to look at the end, how itrsquo;s going to feel. Itrsquo;s not just a set of fields that then get some css (or scss!) and js/php applied. Itrsquo;s something thatrsquo;s eventually going to be touched by dozens, hundreds, thousands of people, both as users and as content managers behind the scenes. Itrsquo;s something that needs to be flexible. Something that can move on the fly, something that can be used on a wide-variety of platforms, in a variety of uses, by a variety of users. Something easy. Something modular./pp dir=ltrLike LEGOreg;./pp dir=ltrThatrsquo;s the beauty of Drupal and other modular CMS. You can take these pieces and make damn near anything out of them. So where is this metaphor leading? You need a great workflow to start, a great system to work within. You need your giant tub of pieces./pp dir=ltrOnce you have your basic ldquo;what do we need?rdquo; question answered, you can expand on what else you might want. The beauty of Drupal is that you have this extraordinarily flexible system--you can modify your content types on the fly. You can add a href=http://www.4sitestudios.com/node/72taxonomies/a if you want to suggest related content to users. Your layouts are flexible, so you can use them to organize all types of content, albeit with a few minor tweaks. Add some fields to your content types and you can build a brand new view. Add some taxonomy terms and you can link your leaders together and allow them to connect with people that share the same interests./pp dir=ltrimg typeof=foaf:Image src=http://4sitestudios.com/sites/default/files/insight/LegoSlides_usechunks.jpg alt=Use chunks, not blobs - structured content in your CMS; build it like LEGO //pp dir=ltrThe point of this is that you need the pieces first. To build a spaceship, you need to start with the 4x4 squares, the crystal cylinder things, and the LEGOreg; head with the 70s hair. Itrsquo;s the same with websites. a href=http://karenmcgrane.com/2013/05/23/drupalcon-keynote-video-and-talk-notes/Karen McGrane says to use chunks, not blobs/a. So you break down your content into consistent and logical pieces. And that will give you the most flexibilty on the back end to organize and display that information, for different audiences, on different platforms, and over time as your needs evolve./pp dir=ltrWhat donrsquo;t you want to do? You donrsquo;t cram every last bit of information you have into a WYSIWYG, because if you need it later, too bad, yoursquo;re writing it again. That would be akin to gluing your LEGOreg; together. If you ever want to use those pieces for anything else, too bad./pp dir=ltrIf you had a custom field or post type, yoursquo;ve got that piece already at your fingertips, ready for use wherever and whenever you want. You need that information later? No worries, itrsquo;s a custom post type. Itrsquo;s a taxonomy reference. Itrsquo;s right there in front of you. You decide you want your author on something else? Itrsquo;s a term reference. An entity reference. A node reference./pp dir=ltrSo go build your castle or spaceship, your saloon or alien moon-base. Just make sure you have your big tub of pieces first, in case you decide later you want to add a mean laser cannon on the top. Or a Mars rover. I donrsquo;t know. You#39;re the designer.nbsp;/pp dir=ltrspan style=font-size: 0.923em; line-height: 1.5em;We just provide the pieces./span/pp dir=ltrspan style=font-size: 0.923em; line-height: 1.5em;This blog post is an extrapolation of a session I presented at FuseCon 2014. Please let us know if you#39;d like any help sorting out your content into manageable, reuseable pieces./span/p/div/div/div
Categories: Drupal Feeds

Drupal Watchdog: Testing, Testing, One... Two... Three...

Fri, 09/05/2014 - 10:21am
div class=field field--article-edit-printtype field-type-list-text field-label-hidden field--rss Column /div div class=field field--article-body field-type-text-long field-label-hidden field--rss pimg src=http://cdn1.drupalwatchdog.com/sites/default/files/field/image/3.2-DrupalExtension.jpg alt=Crash Test Peeps class=img-responsive img-thumbnail width= align= /The Drupal community's commitment to cooperation and sharing is one of its defining characteristics, and the Drupal Extension to Behat and Mink is a powerful example of that cooperation in action. It is not a Drupal module. Rather, it extends the functional testing framework of Behat and Mink in order to provide Drupal-specific functionality. You'll find its detailed documentation at a href=http://behat-drupal-extension.readthedocs.org/en/latest/Read the Docs/a./p pThe extension helps site builders automate tests for Drupal 6, 7, and 8 without having to write custom code for common Drupal features. It currently provides support in three major areas: setting up test data, mapping page regions, and auto-discovery of Behat tests provided by modules and themes./p h3Setting Up Test Data/h3 pTo test any Drupal site, at some point you'll need to set up test data. You can do this in a blackbox fashion, using pre-built steps to create a user – and log in via the interface – then fill out the appropriate form. This approach takes time to write, time to run, and becomes tedious to read. Adding data in this detailed way is warranted at times, but you're typically better off inserting data as a single step in the span class=geshifiltercode class=php geshifilter-phpGiven/code/span section of your scenario. The Drupal extension provides a driver system to help you. /p h4Blackbox/h4 pThe default driver assumes you have no privileged access to the Drupal site. All your data setup has to take place through the normal user interface. The blackbox driver exists so you can benefit from other Drupal Extension features./p h4Drupal API/h4 pWhen your tests run on the same machine as your Drupal installation, you can use the Drupal API directly to create users, nodes, taxonomy vocabularies, and taxonomy terms, without writing any supporting PHP code and without the tedium of blackbox steps. To do so, you configure your testing instance to point at the local path to the Drupal site, tag the scenario with span class=geshifiltercode class=php geshifilter-php@api/code/span, and then use pre-built steps./p pre @api Scenario: Given I am viewing “article” node with the title “Drupal API” /prep This will:/p /div
Categories: Drupal Feeds

Clemens Tolboom: Extending a Widget for numeric fields.

Fri, 09/05/2014 - 8:36am
div class=field field-name-field-images field-type-image field-label-hiddendiv class=field-itemsdiv class=field-item evena href=/content/extending-widget-numeric-fieldsimg src=http://build2be.com/sites/build2be.com/files/styles/medium/public/range-vs-number.png?itok=R3k9Tmks width=220 height=120 alt=range versus number field title=range versus number field //a/div/div/divdiv class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenLooking for a HTML range field in Drupal 8 core I did not found one. First I tried to alter Number Widget but that was wrong. Just extend a suitable widget. The code is very short. But the display is not as good as one needs. Where is the min and max value? And the current value? The specs @ a href=http://www.w3.org/TR/html5/forms.html#range-state-%28type=range%29w3c html5 forms input range/a has some user agent rendering which does not give min, max or current value hints. p input max=10 min=1 value=6 name=quantity type=number / number field. /p/div/div/div
Categories: Drupal Feeds

IXIS: The Amsterdam Sessions 2014

Fri, 09/05/2014 - 4:15am
div class=field field-type-filefield field-field-blogimage div class=field-items div class=field-item odd img src=http://www.ixis.co.uk/sites/ixis/files/imagecache/blogfull/screen_shot_2014-09-05_at_10.14.57.png alt=teaser image for blog post title=Drupalcon Amsterdam class=imagecache imagecache-blogfull imagecache-default imagecache-blogfull_default width=435 height=123 / /div /div /div pWith the 2014 European Drupal conference fast approaching, the Ixis team members attending this year have a href=https://amsterdam2014.drupal.org/schedulescoured the schedule/a for their must see see sessions this year, and why./p pstrongFor the Developers/strong/p pa href=https://amsterdam2014.drupal.org/session/content-staging-drupal-8-continuedContent Staging in Drupal 8/a (Wednesday 10:45) - moving content about from dev to production has always been a huge pain in Drupal, so hopefully we#39;ll get a chance to see how this might work in Drupal 8 and finally put an end to the question of when and where the client should start adding their conent during the development phase./ppa href=http://www.ixis.co.uk/blog/amsterdam-sessions-2014 target=_blankread more/a/p
Categories: Drupal Feeds

DrupalCon Amsterdam: DrupalCon for Frontend developers

Fri, 09/05/2014 - 4:05am
div class=field field--name-body field--type-text-with-summary field--label-hiddendiv class=field__itemsdiv class=field__item evenpDrupalCon Amsterdam is less than one month away! I'm excited to meet up with all the Frontend developers who are coming to learn new things from each other./p pRuben and I have worked really hard as chairs of the Frontend track. We defined the track theme a href=http://www.wunderroot.co.uk/blog/submit-frontend-session-drupalcon-amsterdam target=_blankFuturistic Tools and Techniques/a. We aimed to select the right sessions with the best variety and balance that also flow together into one cohesive track./p h3a href=https://amsterdam2014.drupal.org/session/state-front-end target=_blankThe State of Frontend/a/h3 pWe wanted to kick off the track with a big keynote-style history lesson and insight into the future of Frontend development. Have you ever felt overwhelmed by the ever-changing evolution of front-end development? Me to. After David and Brian's excellent session at DrupalCon Austin, a href=https://austin2014.drupal.org/session/my-brain-full-keeping-pace-front-end-ux-innovations target=_blankMy brain is Full/a, we really wanted them to continue that theme and aim for something bigger./p pDavid and Brian are also working really hard to create an introduction to the entire track, pointing signposts towards other sessions in that track that can fill in more in-depth knowledge about particular subjects. I would encourage everyone with an interest in Frontend development to attend the session if only to better understand which sessions in the Frontend track are right for them./p pWe also have a few session that compliment and feed in to each other. Here are a few sessions we think work really well together./p h3a href=https://amsterdam2014.drupal.org/session/managing-complex-projects-design-components target=_blankManaging Complex Projects with Design Components/a amp; a href=https://amsterdam2014.drupal.org/session/layout-design-patterns target=_blankLayout Design Patterns/a amp; a href=https://amsterdam2014.drupal.org/session/gss-css-layout-system-thats-2-generations-ahead target=_blankGSS - The CSS Layout System that's 2 Generations Ahead/a/h3 pJohn Albin led the initiative to bring a href=https://www.drupal.org/node/1886770 target=_blankOOCSS-style CSS standards/a into Drupal 8, so I'm inclined to say he knows a thing or two in this area. a href=https://amsterdam2014.drupal.org/session/managing-complex-projects-design-components target=_blankManaging Complex Projects With Design Components/a, is a great introduction to to whys, hows, and gotchas of writing better CSS./p pAfter you know your component variants from your component modifiers (spoilers!), you can take a really deep dive into another color of the a href=http://smacss.com/book/type-layout target=_blankSMACSS rainbow/a with a href=https://amsterdam2014.drupal.org/session/layout-design-patterns target=_blankLayout Design Patterns/a. I really like the structure of this walk, that covers the foundations of CSS layouts, grid systems, and implementation in Drupal./p pYou think you know layouts? Maybe you think flexbox is cool? Prepare to get your *mind blown* by Alan Burke in a href=https://amsterdam2014.drupal.org/session/gss-css-layout-system-thats-2-generations-ahead target=_blankGSS - The CSS Layout System that's 2 Generations Ahead/a. A grid system that is unlike any other. /p p*emI've been informed that the Drupal Association™ does not encourage nor condone the projection or discharge of any grey matter. Goggles are not provided and any stain susceptible clothing is worn at the attendees own risk./em/p h3a href=https://amsterdam2014.drupal.org/session/getting-clue-command-line target=_blankGetting a Clue at the Command Line/a amp; a href=https://amsterdam2014.drupal.org/session/automated-frontend-testing target=_blankAutomated Frontend Testing/a/h3 pAs a designer/front-end dev, I've never had a formal education on the command line, it's always been something I've picked up as I've needed it. It used to scare me. I'm so happy Emma Jane is talking on the command line in a href=https://amsterdam2014.drupal.org/session/getting-clue-command-line target=_blankGetting a CLUE at the Command Line/a in the same vein as her a href=https://prague2013.drupal.org/session/git-makes-me-angry-inside) target=_blankintroduction to Git/a at DrupalCon Prague last year. The command line is an immensely powerful and productive tool and I'm looking forward to picking up a few tips./p pNow that you no longer fear the command line, you'll definitely be better equipped to take in Chris's session a href=https://amsterdam2014.drupal.org/session/automated-frontend-testing target=_blankAutomated Frontend Testing/a. He's already told me that he won't hold back, and I know he has little fear for live demos. This session is going to be jam packed with useful information on how to keep your Frontend looking good and loading fast, using some automated scripts./p pWe also have some great sessions on some really focused areas. I can't imagine walking out of any of these sessions without my brain sparkling with new knowledge and ideas./p h3a href=https://amsterdam2014.drupal.org/session/getting-content-phone-less-1000ms target=_blankGetting Content to a Phone in less than 1000ms/a/h3 p1000ms. The holy grail of performance. Can it be done? Or is it just fantasy?/p pimg src=http://media.giphy.com/media/eWTy1lD67R8Yg/giphy.gif //p pI'm really glad Ian submitted this talk. It's great to have a performance talk with a focused goal. Performance is still as important as ever. /p h3a href=https://amsterdam2014.drupal.org/session/future-html-and-css target=_blankThe future of Drupal and CSS/a/h3 pHTML5 and CSS3 is so last decade. No one wants your border radius any more. If you hate the idea of trawling through W3C specifications then this is a good talk for you. Preston presents another forward facing talk that we can also make use of today, a nice roundup of where browser technology is heading. /p pIf you love the idea of trawling through W3C specifications then I can't help you./p h3a href=https://amsterdam2014.drupal.org/session/building-modern-web-applications-emberjs-and-headless-drupal target=_blankBuilding Modern Web Applications with Ember.js and Headless Drupal/a/h3 pa href=http://emberjs.com target=_blankEmber.js/a is an excellent framework with a vibrant community. There are many frameworks out there and Ember.js is only one of them, but we felt it's important for DrupalCon to be introducing new perspectives and ideas. I'm really glad Mikkel is covering both sides of an Ember.js project using Drupal 7 or 8./p p--br / Lewis Nyman (a href=https://www.drupal.org/u/lewisnyman target=_blankLewisNyman/a)br / DrupalCon Amsterdam Frontend Track Chair/p /div/div/div
Categories: Drupal Feeds

Drupalize.Me: Unravelling the Drupal 8 Plugin System

Thu, 09/04/2014 - 5:30pm
div class=field field-name-body field-type-text-with-summary field-label-hidden text-content text-secondarydiv class=field-itemsdiv class=field-item evenpPlugins play an important role in Drupal 8, and understanding how the entire plugin system works will help us better understand how, when, where, and why we use plugins./p/div/div/divdiv id=comment-wrapper-nid-1778/div
Categories: Drupal Feeds

Matthew Saunders: Anatomy of a Drupalcamp - Tasks and Timing

Thu, 09/04/2014 - 4:50pm
!-- google_ad_section_start --div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpThis is the second post in my Making A Drupalcamp Happen series. I've been involved in camps for about 7 years and recently was the main project manager for Colorado. a href=/drupal/content/anatomy-drupalcamp-toolsThe first post/a was around tools, coordination and management. This post is really focused on tasks and when they need to be done to not go crazy./p pThere are certain things that need to happen every year. The earlier you can sort them out, the easier things will be as you approach the deadline of your event. So, I've listed some tasks below along with some rough timing and notes on some of the items. This is by no means an exhaustive list and the timing might be a little off on tasks, but I think it does give a sense of task, scope, and order./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/drupalcampdrupalcamp/a/divdiv class=field-item evena href=/drupal/category/tags/event-planningevent planning/a/divdiv class=field-item odda href=/drupal/category/tags/taskstasks/a/div/div/div
Categories: Drupal Feeds

Acquia: Help Adam and Angie build the Drupal Module Upgrader!

Thu, 09/04/2014 - 4:01pm
div class=field field-name-body field-type-text-with-summary field-label-hidden div class=field-items div property=content:encoded class=field-item evenpThis week: Meet Adam a href=http://www.drupal.org/u/phenaproximaphenaproxima/a Hoenich! Learn what the Drupal Module Upgrader can do for you! And what you can do for it! Come to a href=http://amsterdam2014.drupal.org/bof/drupal-module-upgrader-help-collaborate-automatic-module-porter-d7-d8Webchick's BoF at DrupalCon Amsterdam/a! Contribute!/p /div /div /div span property=dc:title content=Help Adam and Angie build the Drupal Module Upgrader! class=rdf-meta/span
Categories: Drupal Feeds

Mediacurrent: Death to Field Arrays!

Thu, 09/04/2014 - 3:44pm
img typeof=foaf:Image src=http://www.mediacurrent.com/sites/default/files/styles/thumb_blog_spotlight/public/meta-wrappers-02.png?itok=r9ZGp51j width=200 height=152 alt=Entity Metadata Wrapper title=Entity Metadata Wrapper / pa name=0 id=0/a strongCalling all Drupal Devs: Write better code with EntityMetadataWrapper!/strong Have you ever.../p
Categories: Drupal Feeds

KnackForge: Adding custom menu tabs and menu items to navbar

Thu, 09/04/2014 - 1:47pm
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpMobile Friendly Navigation Toolbar, shortly known as a href=https://www.drupal.org/project/navbarnavbar/a, is a back-port of toolbar in Drupal 8. The a href=https://www.drupal.org/node/1993254problem it tries to solve/a is pretty obvious from it's name./p pNavbar is an often used module in our Drupal projects. In our recent project we were asked to develop a bunch of menus to quickly access admin pages as and when needed. Unlike Shortcuts, we want this appear dynamically like notification./p pFor instance, if there are any new comments awaiting approval, the menu should show up and a few more items similar to this. Thought, Navbar could be leveraged for this requirements./p pThis mighty developer friendly module makes this possible for any module by implementing samphook_navbar()/samp. Similar to samphook_menu()/samp, an array of menu items to be returned but in renderable array format. If you need an example, function sampnavbar_navbar()/samp is a good place to get started./p pThe menu it offers can be seen as,/p olliThe navbar tab by its name acting as menu item (e.g. Home)/li liThe navbar tab on click expands to show menu item(s) it has got underneath (e.g. Shortcuts) depends on the way navbar item defined in the samphook_navbar()/samp./li /olp style=text-align: center;img alt= class=media-image height=320 width=478 typeof=foaf:Image src=/sites/default/files/selection_043.png //p pExample code for #1,/p/div/div/div
Categories: Drupal Feeds

Blair Wadman: Why you should not always use Drupal Features for settings, and what you can use instead

Thu, 09/04/2014 - 1:05pm
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpThe a href=https://www.drupal.org/project/featuresDrupal Features module/a covers a lot of our needs with automating the deployment of database settings for Drupal 7. It allows you to export configuration to code and nicely wrap it up as a module. This means you easily deploy your changes to the live site (or a staging site) without having to repeat the configuration changes. It also means you can apply the changes to a different site./p pBut using Features is not always the best approach. Even if you can export something using Features, it doesn't mean you always should. Read on to find out when it is not appropriate to use Features and what you can use instead./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=/drupal/module-development typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Drupal Module Development/a/divdiv class=field-item odd rel=dc:subjecta href=/drupal/deployment typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Drupal Deployment/a/divdiv class=field-item even rel=dc:subjecta href=/drupal/features typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Features/a/divdiv class=field-item odd rel=dc:subjecta href=/drupal/planet typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Planet Drupal/a/div/div/div
Categories: Drupal Feeds

Bluespark Labs: The Business Value of DevOps in Drupal Survey

Thu, 09/04/2014 - 12:19pm
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpstrongtl;dr:strong/strong/strong/p pWe will be presenting a a href=https://amsterdam2014.drupal.org/session/how-we-quantified-true-business-value-devops-real-life-analysissession/a on the business value of DevOps at a href=https://amsterdam2014.drupal.org/Drupalcon Amsterdam/a and would greatly appreciate your response to a href=https://docs.google.com/forms/d/1J1Zfd0h1nqs_ZgpORkRTXkNL-wcNs56icOS-aBqq9Uw/formResponsethis (very) brief survey/a on Drupal and DevOps from a business perspective. /p pstrongThe wordy version: strong/strong/strong/p pAt the upcoming a href=https://amsterdam2014.drupal.org/Drupalcon in Amsterdam/a, a href=http://www.bluespark.com/team/adrian-rollettAdrian Rollett/a and a href=http://www.bluespark.com/team/ronald-ashriI/a will be a href=https://amsterdam2014.drupal.org/session/how-we-quantified-true-business-value-devops-real-life-analysispresenting work/a we did to derive the true business value of the DevOps activities within Bluespark through real life analysis. This will be a particularly useful session for those who either plan on, or are in the process of introducing devops within their organization and need some concrete arguments to help them with the process. /p pTo measure the success of DevOps implementations within Bluespark, we developed a framework that allows us to quantify various aspects of our processes into specific business gains. We then inspected a number of different projects, analyzing a range of issues such as time logs, number of times a specific activity took place, etc. As a result we were able to quantify the efficiencies gained by implementing automated testing, continuous integration and other DevOps principles. We will be presenting this framework and the results obtained in Amsterdam./p pIn addition, we are seeking to get a sense of the current adoption of DevOps in the Drupal world from a business perspective. We have created a very brief survey to gather this information. This is a complementary effort to the very excellent and more technically-oriented survey that is planned (a href=http://www.krisbuytaert.be/blog/upcoming-conferenceshttp://www.krisbuytaert.be/blog/upcoming-conferences/a) for a different Drupalcon session. We will of course be sharing the insights we gather with the entire community. /p pMany thanks in advance for your responses, and we hope to see you in Amsterdam!/p pa href=https://docs.google.com/forms/d/1J1Zfd0h1nqs_ZgpORkRTXkNL-wcNs56icOS-aBqq9Uw/formResponseClick here to fill in the survey/a/p /div/div/divdiv class=field field-name-field-blog-tags field-type-taxonomy-term-reference field-label-abovediv class=field-labelTags:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/blog/drupalconDrupalcon/a/divdiv class=field-item odda href=/blog/devopsDevOps/a/divdiv class=field-item evena href=/blog/drupal-planetDrupal Planet/a/div/div/div
Categories: Drupal Feeds

Lullabot: Drupal as a Services Platform

Thu, 09/04/2014 - 11:29am
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpThe next issue of Drupal Watchdog features articles about Drupal as a Services Platform. Several authors in the issue and the executive editor will be sharing various perspectives on web services in Drupal and in the wider world. With hostess Amber Himes Matz and her guests Peta Hoyes, Scott Hooker, Lin Clark, and Larry Garfield./p /div/div/div ul class=field field-name-field-show-notes field-type-link-field field-label-hidden li a href=https://amsterdam2014.drupal.orgDrupalCon Amsterdam/a /li li a href=https://amsterdam2014.drupal.org/community-summitCommunity Summit/a /li li a href=http://2014.pnwdrupalsummit.org/Pacific NW Drupal Summit/a /li li a href=http://2014.badcamp.net/BADCamp/a /li li a href=http://drupalwatchdog.com/Drupal Watchdog/a /li li a href=https://twitter.com/eaton/status/504273225346736128Eaton's discussion of Headless Drupal/a /li li a href=https://www.ietf.org/mail-archive/web/apps-discuss/current/msg07201.htmlJSON Schema Considered Harmful/a /li li a href=https://www.ietf.org/mail-archive/web/apps-discuss/current/msg07261.htmlTim Bray's response/a /li li a href=http://berjon.com/web-2024/Robin Berjon's Web 2024/a /li li a href=http://shop.oreilly.com/product/9780596801694.doRESTful Web Services Cookbook/a /li li a href=http://martinfowler.com/articles/richardsonMaturityModel.htmlMartin Fowler's article on Richardson Maturity Model/a /li /ul
Categories: Drupal Feeds

Liran Tal's Enginx: “Oh you lazy cron!” – learning on Drupal cron issues

Thu, 09/04/2014 - 11:19am
pWe#8217;re still working with a href=http://drupal.org/ target=_blankDrupal 6/a at work, and we#8217;re triggering our notifications and other cron related tasks through a small script that a href=http://en.wikipedia.org/wiki/Cron target=_blankcrontab /ais running, and with the help of a href=http://drush.ws/ target=_blankdrush /aat the command line. The following problem and description of the scenario we had applies to a href=http://drupal.org/ target=_blankDrupal 7/a too as these are pretty much close with regards to implementation./p pDrupal#8217;s cron job will most often run smoothly and without any issues, it will appear to #8220;just work#8221;. The reason for that is that behind the scenes, anything related to creating scheduled tasks in Drupal will have to implement a href=https://api.drupal.org/api/drupal/modules%21system%21system.api.php/function/hook_cron/7 target=_blankhook_cron/a, and simply enough, not a lot of modules will be doing that. So when you first setup your Drupal application and get it to run, you#8217;ll wrap up any issues with cron and from there it#8217;s smooth sailing#8230; Or not! There are practices you should be aware of when you program modules in Drupal that are not related to cron, yet can still mess it up./p pSo back to the story, at some point we noticed our notifications aren#8217;t being sent out in our development environment, and because cron is responsible for running the notifications, then that#8217;s the immediate suspect. Problem is, debugging cron isn#8217;t that easy, mainly because Drupal will just fire off those hooks and you#8217;ve got no idea where the culprit code is./p pSearch for the problem begins by checking quickly all the modules that implement a href=https://api.drupal.org/api/drupal/modules%21system%21system.api.php/function/hook_cron/7 target=_blankhook_cron/a, primarily your very own and recently added modules are the prime suspects. If that yields no results, as did in my case you#8217;re going to have to broaden the search and a good way to quickly figure out where this happens is by inspecting Drupal#8217;s codemodule.inc/code to catch the cron hook. One way of doing that is through a debugger, another quick and easy way is by using Drupal#8217;s own codewatchdog/code (or PHP#8217;s own codeerrorlog/code) function to capture this data:/p pcodebr / function module_invoke_all() {br / $return = array();br / foreach (module_implements($hook) as $module) {br / $function = $module .'_'. $hook;br / if ($hook == 'cron') watchdog('cron', hit $module cron); // add line to log in db log/code/p p#8230;/p p}/p p}/p pInspecting the information there from the change or through the debugger we#8217;ll be able to see which cron hook last ran successfully./p pI will spare the rest of the debugging process but the research led to Drupal#8217;s own implementation of codehook_cron/code which further led to module calls of codenode_invoke/code and codenode_invoke_nodeapi/code where it was then failing. At that point, all custom, and recent changes to anything the codebase related to codehook_nodeapi/code revealed the culprit:/p pcodebr / function my_module_nodeapi($op...) {/code/p pswitch ($op) {/p pcase #8216;view#8217;:br / drupal_goto(#8221;);/p pbreak;/p p}/p p}br / This makes perfect sense. Nodes get loaded through the node_load() and the rest of Drupal#8217;s hooks for the sake of handling the notifications, which in turn calls nodeapi hook all around, and having a codedrupal_goto()/code doesn#8217;t really help drush when its running from the command line./p pLesson learned./p !-- Easy AdSense V7.31 -- !-- [leadout: 1 urCount: 1 urMax: 0] -- div class=ezAdsense adsense adsense-leadout style=text-align:center;margin:12px; script async src=//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js/script !-- enginx-blog-wide-post -- ins class=adsbygoogle style=display:inline-block;width:728px;height:90px data-ad-client=ca-pub-9677997565991773 data-ad-slot=6746030703/ins script (adsbygoogle = window.adsbygoogle || []).push({}); /script/div !-- Easy AdSense V7.31 -- pThe post a rel=nofollow href=http://enginx.com/blog/learning-on-drupal-cron-issues/#8220;Oh you lazy cron!#8221; #8211; learning on Drupal cron issues/a appeared first on a rel=nofollow href=http://enginx.comLiran Tal#039;s Enginx/a./p
Categories: Drupal Feeds

Code Karate: Drupal 7 Node Class Module

Thu, 09/04/2014 - 8:39am
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 even166/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/LmwrJinTykQ.jpg?itok=GQOPXt3V alt=Drupal 7 Node Class Module - Daily Dose of Drupal Episode 166 //div/div/divdiv class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpIn this episode you will learn how the Drupal 7 a href=https://www.drupal.org/project/node_class rel=nofollowNode Class module/a works with the basic page content type. The simplicity of the Node Class module provides an easy way for site builders and themers to add a CSS class directly to the wrapper on the node. Using this module allows for various different layouts and styles to be called based on defined CSS rules./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/core-concepts/content-typesContent Types/a/divdiv class=field-item evena href=/category/tags/drupal/drupal-7Drupal 7/a/divdiv class=field-item odda href=/category/tags/drupal/layout-toolsLayout Tools/a/divdiv class=field-item evena href=/category/tags/drupal-planetDrupal Planet/a/divdiv class=field-item odda href=/category/tags/uidesign/cssCSS/a/div/div/div
Categories: Drupal Feeds

Drupal core announcements: Drupal core updates for September 4, 2014

Thu, 09/04/2014 - 4:59am
h2What's new with Drupal 8?/h2 pIt has a href=https://groups.drupal.org/node/436638been a month/a since the last update on Drupal core development. In the meantime we met and worked hard together at a href=http://2014.tcdrupal.org/sprintsTCDrupal/a and a href=http://hojtsy.hu/blog/2014-aug-18/moving-drupal-forward-europes-biggest-warm-water-lakeDrupalaton/a at the start of August triaging outstanding critical issues and resolving some. Also we collaborated on a href=http://frontendunited.org/making Drupal's frontend better at Frontend United/a at the end of the month./p pWe've been doing such a great job taking care of the beta blocker issues that we are currently down to a href=https://www.drupal.org/project/issues/search/drupal?status%5B%5D=1amp;status%5B%5D=13amp;status%5B%5D=8amp;status%5B%5D=14amp;status%5B%5D=4amp;version%5B%5D=8.xamp;issue_tags_op=%3Damp;issue_tags=beta+blockeronly one beta blocker/a as of this writing. What does this mean? Once we are down to no beta blockers left, a final alpha release is published. If there are no more beta blockers identified during a two-week window, the first beta release is published. Then we'll focus on resolving the hundred or so remaining critical issues to get to release candidates (once all of them are resolved)./p pa href=https://groups.drupal.org/node/427578img src=https://groups.drupal.org/files/Berlage2_0.jpg style=float: right; margin: 0 0 2em 2em; //aRight now, help with the remaining beta blocker as well a href=https://www.drupal.org/project/issues/search/drupal?project_issue_followers=amp;status%5B%5D=1amp;status%5B%5D=13amp;status%5B%5D=8amp;status%5B%5D=14amp;status%5B%5D=4amp;version%5B%5D=8.xamp;issue_tags_op=%3Damp;issue_tags=beta+deadlinebeta deadline/a and a href=https://www.drupal.org/project/issues/search/drupal?project_issue_followers=amp;status%5B%5D=1amp;status%5B%5D=13amp;status%5B%5D=8amp;status%5B%5D=14amp;status%5B%5D=4amp;version%5B%5D=8.xamp;issue_tags_op=%3Damp;issue_tags=beta+targetbeta target/a issues is most welcome. Beta target issues may get in anytime later, but beta deadlines may not unless re-evaluated for inclusion regardless. /p pThe best opportunity to get to work with Drupal developers in person is the a href=https://groups.drupal.org/node/4400389 (nine) days of sprint opportunities coming up at the end of September/a at and around DrupalCon Amsterdam. It is the best way to learn Drupal 8 hands-on and help on the way./p h2 style=clear: right;Where's Drupal 8 at in terms of release?/h2 pLast week, we fixed 8 critical issues and 12 major issues, and opened 4 criticals and 7 majors. That puts us overall at a href=https://drupal.org/project/issues/search/drupal?status%5B%5D=1amp;status%5B%5D=13amp;status%5B%5D=8amp;status%5B%5D=14amp;status%5B%5D=4amp;priorities%5B%5D=400amp;categories%5B%5D=1amp;categories%5B%5D=2amp;version%5B%5D=8.xamp;issue_tags_op=%3D104 release-blocking critical issues/a and a href=https://drupal.org/project/issues/search/drupal?status%5B%5D=1amp;status%5B%5D=13amp;status%5B%5D=8amp;status%5B%5D=14amp;status%5B%5D=15amp;status%5B%5D=4amp;priorities%5B%5D=300amp;categories%5B%5D=1amp;categories%5B%5D=2amp;version%5B%5D=8.xamp;issue_tags_op=%3D644 major issues/a./p h2Where can I help?/h2 h3Top criticals to hit this week/h3 pEach week, we check with core maintainers and contributors for the extra critical criticals that are blocking other work. These issues are often tough problems with a long history. If you're familiar with the problem-space of one of these issues and have the time to dig in, help drive it forward by reviewing, improving, and testing its patch, and by making sure the issue's summary is up to date and any API changes are documented with a a href=https://groups.drupal.org/node/402688draft change record/a, we could use your help!/p ul lia href=https://drupal.org/node/2330121Issue #2330121/a: emReplace ContentEntityDatabaseStorage::getSchema() with a new EntityTypeListenerInterface implemented by SqlContentEntityStorageSchema/em is part of our only remaining beta blocker, in which we factor out the SQL database creation from going through the ModuleHandler and instead introduce onEntityType(Create|Update|Delete)() methods to cover our use cases. The beta blocker is purposely broken to smaller issues to help reviewers. Look for more sub-issues under a href=https://drupal.org/node/1498720#1498720: Make the entity storage system handle changes in the entity and field schema definitions/a later on./li lia href=https://www.drupal.org/node/2313159Issue #2313159/a: em[meta] Make multilingual views work/em is a collection of problems related to making multi-lingual views in Drupal 8. A number of the sub-issues are Major, a href=https://www.drupal.org/node/45111meaning they have significant repercussions but do not render the whole system unusable/a./li /ul h3More ways to help/h3 ul liPick a a href=https://www.drupal.org/project/issues/drupal?priorities=400amp;version=8.0.x-devcritical issue/a or a href=https://www.drupal.org/project/issues/search/drupal?project_issue_followers=amp;status%5B%5D=1amp;status%5B%5D=13amp;status%5B%5D=8amp;status%5B%5D=14amp;status%5B%5D=4amp;version%5B%5D=8.0.x-devamp;issue_tags_op=%3Damp;issue_tags=beta+deadlinebeta deadline issue/a, take the time to thoroughly read the issue (including doing some background reading if necessary to understand the problem space), and then a href=https://www.drupal.org/contributor-tasks/write-issue-summaryupdate the issue summary/a for the issue. Include a summary of the current status and remaining tasks for the issue, and identify any API changes the issue would introduce. Consider whether the change would require a change record or updates to existing change records. Consider what the implications of not resolving the issue would be, or of resolving it after the first beta or after release./li liWe also need help a href=https://www.drupal.org/node/1908570writing help text for core modules/a like Field UI, Image, Taxonomy and Toolbar. This is an easy way to learn the Drupal Core contribution process and start contributing to Drupal Core./li /ul pAs always, if you're new to contributing to core, check out a href=https://drupal.org/core-mentoringCore contribution mentoring hours/a. Twice per week, you can log into IRC and helpful Drupal core mentors will get you set up with answers to any of your questions, plus provide some useful issues to work on./p pYou can also help by a href=https://www.gittip.com/DrupalCoreGittipTeam/sponsoring individual Drupal core development/a./p !--break--!--break--h2Notable Commits/h2 pSome of the best of codegit log --since August 4, 2014 --pretty=oneline/code (277 commits in total):/p ul lia href=https://drupal.org/node/1510544Issue 1510544/a by swentel, Bojhan, Gábor Hojtsy, merlinofchaos, Cottser, Wim Leers, plopesc, aspilicious, sannejanssen, larowlan, tim.plunkett, nod_: Fixed Show previews in front-end theme, able to select different view modes. This was a long time coming. Finally, your node preview will not appear on the backend!/li lia href=https://drupal.org/node/2248767Issue 2248767/a by effulgentsia, beejeebus, alexpott: Use fast, local cache back-end (APCu, if available) for low-write caches (bootstrap, discovery, and config). Improves performance for some critical data a great deal. /lilia href=https://drupal.org/node/2224761Issue 2224761/a by Gábor Hojtsy, alexpott, pfrenssen, effulgentsia, xjm, mlncn: Add a generic way to add third party configuration on configuration entities and implement for field configuration. Resolved a beta blocker by adding a facility for configuration entities to support third party settings. To be used for node types and other things as needed as well. Provides a simple solution when a full-on plugin architecture as in views is not suitable, but extension mechanisms are needed for configuration./li lia href=https://drupal.org/node/1966436Issue 1966436/a by naveenvalecha, cesarmiquel, Berdir, mr.york, jlbellido, segi, vasi1186, Leksat, Gábor Hojtsy, Schnitzel, grisendo, Aron Novak, likin, penyaskito, vijaycs85, kfritsche, fago: Fixed Default *content* entity languages are not set for entities created with the API. Now made Drupal properly create entities in the right language regardless of through the UI or API (eg. when adding a tag or uploading a file). Also makes entities created from the creation of the site be in the right language always. /lilia href=https://drupal.org/node/2295469Issue 2295469/a by Cottser, dawehner | effulgentsia: Add support for static permission definitions with *.permissions.yml. Makes it possible to simply define permissions in a simple YAML file making this system consistent with several other in Drupal 8./li lia href=https://drupal.org/node/2271529Issue 2271529/a by attiks, alexpott, Lowell, YesCT, Jelle_S | mdrummond: Move breakpoint settings to theme and module *.breakpoints.yml files at root level. Improves developer experience providing breakpoints./li lia href=https://drupal.org/node/2317085Issue 2317085/a by pfrenssen | rteijeiro: Added the possibility to create a REST export when creating a new view. Makes it much easier to create simple web service views of Drupal content./li lia href=https://drupal.org/node/2250119Issue 2250119/a by ParisLiakos, Devin Carlson: Run updates in a full environment. Now that updates are not supposed to operate in API-incompatible environments, their implementation was unified with any other Drupal environment./li /ul pYou can also always check the a href=https://drupal.org/list-changesChange records for Drupal core/a for the full list of Drupal 8 API changes from Drupal 7./p h2Drupal 8 security/h2 pWith the API stabilizing we are focusing on security again. In our last issue we already reported on Twig autoescape now being on, sometimes resulting in unwanted HTML strings appearing on the page because of double escape bugs. Please check a href=https://www.drupal.org/node/2297711the meta issue/a if you see these./p ul liThe router service is now a href=https://drupal.org/node/2322809access aware/a so there is no need now to separately access check the routes returned from it./li liBuilding on this, now menu links, shortcuts and link fields use a a href=https://drupal.org/node/2323721unified path validator/a service../li /ul h2Drupal 8 Around the Interwebs/h2 div style=text-align: center;a href=http://drupal.com/img src=https://groups.drupal.org/files/drupal-drupal-com-2014-devices-500x500.jpg //a/div ul lia href=http://drupal.com/Drupal.com/a was relaunched and it runs of course on Drupal 8! Read more about it in a href=http://buytaert.net/drupal-com-refresh-launched-2014Dries Buytaerts' post/a. /liliAdam aka a href=https://www.drupal.org/u/phenaproximaphenaproxima/a is working on a href=https://www.acquia.com/blog/automatic-module-upgrader-drupal-8-getting-some-lovemodernizing and extending the Drupal Module Upgrader/a, so you can get automated help upgrading your Drupal 7 modules./li liThere are several good practices you can adapt in your Drupal 7 projects preparing for Drupal 8. One of them is a href=http://www.previousnext.com.au/blog/drupal-8-now-phpunit-tests-drupal-7using PHPUnit tests in Drupal 7/a. Lee Rowlands has a great post about this. /li liTobias Stöckler is explaining a a href=https://blog.erdfisch.de/node/412Composer based Drupal 8 workflow/a for integrating Drupal 8 with other PHP libraries seamlessly./li liIn a href=http://www.palantir.net/blog/d8ftw-your-next-drupal-hire-isnt-drupal-hireD8FTW: Your Next Drupal Hire Isn't a Drupal Hire/a Larry Garfield says you should look farther than Drupal developers for hiring and suggests some techniques to connect with the larger PHP community./li liNuvole's Fabian Bircher posted a teaser to his Drupal 8 training showing a a href=http://nuvole.org/blog/2014/aug/20/git-workflow-managing-drupal-8-configurationGit workflow for managing Drupal 8 configuration/a/li liFour well known Drupal core contributors Jennifer Hodgdon, Bojhan Somers Alex Pott and Cathy Theys sat down with Brian Lewis to a href=https://modulesunraveled.com/podcast/115-drupal-core-gittip-team-jennifer-hodgdon-bojhan-somers-alex-pott-and-cathy-theys-modulestalk about sustainability of core development and the Drupal Core Gittip team/a./li liJeffrey A. jam McGuire recorded and recently published a video podcast with Joël Pittet and Scott Reeves on a href=https://www.acquia.com/resources/podcasts/acquia-podcast-151-drupal-8-new-theming-layer-joel-pittet-scott-reevesDrupal 8's new Twig templating system/a./li /ul h2Drupal 8 in Real Life/h2 ul listrongSeptember 5/strong: a href=https://groups.drupal.org/node/440348First Friday D8 Contrib Sprint/a in Zurich, Switzerland as part of the regular series./li listrongSeptember 6-7/strong: a href=http://lviv2014.drupal.ua/enLviv Euro DrupalCamp/a in Lviv, Ukraine will have a sprint lead by top Drupal contributor andypost./li listrongSeptember 12/strong: a href=http://drupaldelphia.com/Drupaldelphia/a in Philadelphia, USA includes sessions on Drupal 8 theming and Migrate./li listrongSeptember 12-13/strong: a href=http://2014.drupalcampmontreal.com/enDrupalCamp Montreal/a in Montreal, Canada is full of great Drupal 8 content on theming, services as well as an introduction./li listrongSeptember 19 - October 3/strong: a href=https://amsterdam2014.drupal.org/DrupalCon Amsterdam/a in Amsterdam, The Netherlands is going to be amazing with lots of opportunities to learn about and get involved with Drupal 8. It includes a href=https://amsterdam2014.drupal.org/news/get-status-update-drupal-8-contribution-modules-drupalcon-amsterdamtwo hours of updates on propular contributed modules/a on Drupal 8 and a href=https://groups.drupal.org/node/440038nine days of sprints/a./li /ul h2Whew! That's a wrap!/h2 pDo you follow a href=https://drupal.org/planetDrupal Planet/a with devotion, or keep a close eye on the a href=http://www.drupical.com/Drupal event calendar/a, or codegit pull origin 8.0.x/code every morning without fail before your coffee? We're looking for more contributors to help compile these posts. You could either take a few hours once every six weeks or so to put together a whole post, or help with one section more regularly. a href=https://drupal.org/node/2220285Read more about how you can volunteer to help with these posts/a!/p
Categories: Drupal Feeds

tanay.co.in: Telize - Simple IP-based Redirection Module for Drupal Sites

Thu, 09/04/2014 - 2:54am
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedp dir=ltr style=line-height:1.5;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-6cfb5182-3fa6-4777-e447-14f898f99efcspan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;Was working with a customer who required simple IP-based redirection for Drupal Sites./span/span/p p p dir=ltr style=line-height:1.5;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-6cfb5182-3fa6-4777-e447-14f898f99efcspan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;Was analyzing the various existing options:/span/span/p p ul style=margin-top:0pt;margin-bottom:0pt; li dir=ltr style=list-style-type: disc; font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; p dir=ltr style=line-height:1.5;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-6cfb5182-3fa6-4777-e447-14f898f99efca href=https://www.drupal.org/project/smart_ipspan style=font-size: 15px; font-family: Arial; color: rgb(17, 85, 204); font-weight: bold; font-style: normal; font-variant: normal; text-decoration: underline; white-space: pre-wrap; background-color: transparent;Smart IP/span/aspan style=font-size: 15px; font-family: Arial; font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent; : Looks good. But sets sessions which break Varnish Caching. Most Drupal sites run from behind Varnish Reverse Proxy and using Smart IP would mean either forgoing varnish caching or having to add complex VCL rules./span/span/p /li li dir=ltr style=list-style-type: disc; font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; p dir=ltr style=line-height:1.5;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-6cfb5182-3fa6-4777-e447-14f898f99efca href=https://www.drupal.org/project/geo_redirectspan style=font-size: 15px; font-family: Arial; color: rgb(17, 85, 204); font-weight: bold; font-style: normal; font-variant: normal; text-decoration: underline; white-space: pre-wrap; background-color: transparent;Geo-Redirect/span/aspan style=font-size: 15px; font-family: Arial; font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent; : Again, would not work well with Varnish. The first redirection will be cached on Varnish and all subsequent users from different countries might be redirected to the cached redirection. Requires additional GeoIP.dat file to be downloaded and this should be updated frequently./span/span/p /li li dir=ltr style=list-style-type: disc; font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; p dir=ltr style=line-height:1.5;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-6cfb5182-3fa6-4777-e447-14f898f99efcspan style=font-size: 15px; font-family: Arial; font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;Using /spana href=https://www.maxmind.com/en/homespan style=font-size: 15px; font-family: Arial; color: rgb(17, 85, 204); font-weight: bold; font-style: normal; font-variant: normal; text-decoration: underline; white-space: pre-wrap; background-color: transparent;MaxMind API/span/aspan style=font-size: 15px; font-family: Arial; font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent; : Most hosts like Acquia allow the Maxmind API to be integrated on the balancers so that Varnish maintains country code in the cache (preventing the same redirection to be cached). The country code is added to the headers in both request and response. This is the ideal way to implement GeoIP for any enterprise site. But it requires dedicated load balancers, and there is no plug-and-play module to utilize the API requiring custom development./span/span/p /li li dir=ltr style=list-style-type: disc; font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; p dir=ltr style=line-height:1.5;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-6cfb5182-3fa6-4777-e447-14f898f99efcspan style=font-size: 15px; font-family: Arial; font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;And a plethora of other modules that break varnish in similar ways../span/span/p /li /ul p p dir=ltr style=line-height:1.5;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-6cfb5182-3fa6-4777-e447-14f898f99efcspan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-weight: bold; font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;What I wanted:/span/span/p ul style=margin-top:0pt;margin-bottom:0pt; li dir=ltr style=list-style-type: disc; font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; p dir=ltr style=line-height:1.5;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-6cfb5182-3fa6-4777-e447-14f898f99efcspan style=font-size: 15px; font-family: Arial; font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;Simple country-based redirection/span/span/p /li li dir=ltr style=list-style-type: disc; font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; p dir=ltr style=line-height:1.5;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-6cfb5182-3fa6-4777-e447-14f898f99efcspan style=font-size: 15px; font-family: Arial; font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;Should not break caching / varnish/span/span/p /li li dir=ltr style=list-style-type: disc; font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; p dir=ltr style=line-height:1.5;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-6cfb5182-3fa6-4777-e447-14f898f99efcspan style=font-size: 15px; font-family: Arial; font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;Should not require GeoIP datafiles to be downloaded and maintained/span/span/p /li li dir=ltr style=list-style-type: disc; font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; p dir=ltr style=line-height:1.5;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-6cfb5182-3fa6-4777-e447-14f898f99efcspan style=font-size: 15px; font-family: Arial; font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;Should be simple and light-weight /span/span/p /li li dir=ltr style=list-style-type: disc; font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; p dir=ltr style=line-height:1.5;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-6cfb5182-3fa6-4777-e447-14f898f99efcspan style=font-size: 15px; font-family: Arial; font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;Good-to-have, though not mandatory : Zero or Low subscription cost/span/span/p /li /ul p p dir=ltr style=line-height:1.5;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-6cfb5182-3fa6-4777-e447-14f898f99efcspan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;A hour-long search resulted in nothing significantly useful for Drupal./span/span/p p p dir=ltr style=line-height:1.5;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-6cfb5182-3fa6-4777-e447-14f898f99efcspan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;Finally found this API : /spana href=http://www.telize.com/span style=font-size: 15px; font-family: Arial; color: rgb(17, 85, 204); font-weight: bold; font-style: normal; font-variant: normal; text-decoration: underline; white-space: pre-wrap; background-color: transparent;http://www.telize.com//span/aspan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent; . Sounded promising./span/span/p ul style=margin-top:0pt;margin-bottom:0pt; li dir=ltr style=list-style-type: disc; font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; p dir=ltr style=line-height:1.5;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-6cfb5182-3fa6-4777-e447-14f898f99efcspan style=font-size: 15px; font-family: Arial; font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;The API powering the site is /spana href=http://www.statdns.com/tools/span style=font-size: 15px; font-family: Arial; color: rgb(17, 85, 204); font-style: normal; font-variant: normal; text-decoration: underline; white-space: pre-wrap; background-color: transparent;opensource/span/a/span/p /li li dir=ltr style=list-style-type: disc; font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; p dir=ltr style=line-height:1.5;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-6cfb5182-3fa6-4777-e447-14f898f99efcspan style=font-size: 15px; font-family: Arial; font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;There is no rate limit of any sort /spanspan style=font-size: 15px; font-family: Arial; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: underline; white-space: pre-wrap; background-color: transparent;at the moment/spanspan style=font-size: 15px; font-family: Arial; font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;, and the service is free for everyone to use./span/span/p /li li dir=ltr style=list-style-type: disc; font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; p dir=ltr style=line-height:1.5;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-6cfb5182-3fa6-4777-e447-14f898f99efcspan style=font-size: 15px; font-family: Arial; font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;Used GeoLite data created by MaxMind/span/span/p /li /ul p p dir=ltr style=line-height:1.5;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-6cfb5182-3fa6-4777-e447-14f898f99efcspan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;The API was exciting but still it was not something that could be plug-n-play’ed on Drupal./span/span/p p p dir=ltr style=line-height:1.5;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-6cfb5182-3fa6-4777-e447-14f898f99efcspan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;Built this module - /spana href=https://www.drupal.org/project/telizespan style=font-size: 15px; font-family: Arial; color: rgb(17, 85, 204); font-weight: bold; font-style: normal; font-variant: normal; text-decoration: underline; white-space: pre-wrap; background-color: transparent;https://www.drupal.org/project/telize/span/a/span/p ul style=margin-top:0pt;margin-bottom:0pt; li dir=ltr style=list-style-type: disc; font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; p dir=ltr style=line-height:1.5;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-6cfb5182-3fa6-4777-e447-14f898f99efcspan style=font-size: 15px; font-family: Arial; font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;Simple Country-based redirection/span/span/p /li li dir=ltr style=list-style-type: disc; font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; p dir=ltr style=line-height:1.5;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-6cfb5182-3fa6-4777-e447-14f898f99efcspan style=font-size: 15px; font-family: Arial; font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;Redirection happens at front-end through JS. Works on top of Varnish/span/span/p /li li dir=ltr style=list-style-type: disc; font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; p dir=ltr style=line-height:1.5;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-6cfb5182-3fa6-4777-e447-14f898f99efcspan style=font-size: 15px; font-family: Arial; font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;Does not set any session cookies. Won’t break your Varnish/span/span/p /li li dir=ltr style=list-style-type: disc; font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; p dir=ltr style=line-height:1.5;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-6cfb5182-3fa6-4777-e447-14f898f99efcspan style=font-size: 15px; font-family: Arial; font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;No subscription required/span/span/p /li li dir=ltr style=list-style-type: disc; font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; p dir=ltr style=line-height:1.5;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-6cfb5182-3fa6-4777-e447-14f898f99efcspan style=font-size: 15px; font-family: Arial; font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;No additional files/libraries required/span/span/p /li /ul p p dir=ltr style=line-height:1.5;margin-top:0pt;margin-bottom:0pt;span id=docs-internal-guid-6cfb5182-3fa6-4777-e447-14f898f99efcspan style=font-size: 15px; font-family: Arial; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; white-space: pre-wrap; background-color: transparent;Try it out of you have simple GeoIP redirection requirements. /span/span/p div  /div /div/div/div
Categories: Drupal Feeds

Dries Buytaert: Visiting China and Japan

Wed, 09/03/2014 - 12:55pm
div class=field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-abovediv class=field-labelTopic:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/tag/drupal typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Drupal/a/div/div/divdiv class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpAfter spending the summer in Boston, I'm ready to fly across the world ... literally, as I'm leaving on a two week trip to China and Japan later this week. I'm very excited about it as I've never had the opportunity to see either of these countries. /p pI will arrive in Beijing on Saturday, September 6th, for the Young Global Leaders Annual Summit. A private path from where I'll be staying, Commune by the Great Wall, leads to a non-restored section of the epic Great Wall of China. Exploring this truly untouched piece of Chinese history still in its original landscape should be a special experience! Stay tuned for photos./p pFollowing my time in Beijing, I'll transfer to Tianjin to attend Summer Davos. In addition to that, we're organizing a meetup with the local Drupal community - a href=https://groups.drupal.org/node/434658https://groups.drupal.org/node/434658/a. If you are in the area on September 10th, please stop by for a drink. I'd love to meet you and learn about the State of Drupal in China./p pI'll end my two week trip in Tokyo, Japan. My time will be split between meeting the local Drupal community - a href=https://groups.drupal.org/node/440198https://groups.drupal.org/node/440198/a, understanding the adoption rate of Drupal in the Japanese market, and attending private meetings with digital agencies, Acquia partners and others to learn about the state of the web and digital in Japan./p pXièxiè and dōmo arigatō to those that have helped plan these events and gather the Drupal community for some fun evenings!/p pIf you aren't able to make either Drupal meetup, feel free to leave your thoughts in the comments./p /div/div/div
Categories: Drupal Feeds

Cruiskeen Consulting: Yet Another Drupal News Source

Wed, 09/03/2014 - 11:55am
div class=field field-name-body field-type-text-with-summary field-label-hidden view-mode-rss view-mode-rssdiv class=field-itemsdiv class=field-item evenpThe world is full of Drupal news sources - a href=https://www.drupal.org/planetPlanet Drupal/a, a href=http://drupalfire.com target=_blankDrupal Fire/a, a href=http://groups.drupal.orgGroups.Drupal.Org/a, and many many more.  So of course we've decided to build another one. /ppWhy?  Because we can. And because we've been spending a lot of time playing around with a href=http://www.rebelmouse.com target=_blankRebelmouse/a.  So - aggregating content from all over the planet, we bring you a href=https://www.rebelmouse.com/dropnews/Drop News/a/p/div/div/divdiv class=field field-name-taxonomy-vocabulary-8 field-type-taxonomy-term-reference field-label-hidden view-mode-rss view-mode-rssul class=field-itemsli class=field-item evena href=/taxonomy/term/75Drupal/a/lili class=field-item odda href=/topics/planetPlanet/a/lili class=field-item evena href=/taxonomy/term/189Planet Drupal/a/li/ul/div
Categories: Drupal Feeds

Phase2: Better Development Through Emotional Intelligence

Wed, 09/03/2014 - 11:11am
pI am strongunabashedly/strong an engineer. I obsess over the pursuit of finding the most efficient solution to any problem./p pIn the realm of open source software, this approach has served me well. We read, reverse-engineer, fork, improve, and share. I want my process to be faster, more flexible, and maintainable for the long haul./p pAs I#8217;ve investigated different methodologies, one characteristic I constantly underestimate is the team dynamic. I tend to pigeon-hole my mind into thinking that the emsolution/em to a problem is the most important goal./p pHey look! There#8217;s a problem! I must find a solution for it./p ul liWhat if complex problems can#8217;t be solved by me?/li liWhat if, when I suggest a tool or a programming philosophy, it masks the need to dive deeply into other factors?/li /ul pThe more I researched my approach, I came across a concept that is vital to a href=http://hbr.org/2001/03/building-the-emotional-intelligence-of-groups/ar/1team effectiveness/a when solving complex problems: a title=Emotional Intelligence href=http://en.wikipedia.org/wiki/Emotional_intelligenceemotional intelligence/a./p pEmotional Intelligence, sometimes referred to as EQ (emotional intelligence quotient) to complement IQ (intelligence quotient), is the ability to be aware of, express, control, reason, and interpret emotions appropriately./p pWithin a team, a href=http://espace.library.uq.edu.au/eserv.php?pid=UQ:13567amp;dsID=na_hrmr_12_02.pdfmany/a, a href=https://lib.nu.edu.sa/uploads/m1/25.pdfmany/a, a href=http://www.tandfonline.com/doi/abs/10.1207/.VADd4kvtK1Amany/a studies have shown that EQ, more than IQ, is the key to solving complex problems./p pThe team dynamic is engrained with the DNA of open-source projects. Any Drupal issue queue or Packagist library commit log supports that./p pThe strongbetter/strong question I ask myself, however, is:/p ul liAre the teams I work on the most emotionally intelligent?/li liIf not, what am I doing to improve that metric?/li /ul pPeeling back this onion revealed the societal constructs that affected how I view an effective team./p pTypically, I look to the most technical people I know for answers. In some cases, I follow the stereotypical engineer playbook of positing a hypothesis, demanding evidence, and playfully browbeating a decision./p pPut another way, how many times have I jokingly used the phrase #8221; Are You  doing it wrong?#8221; and is that the most effective solution?/p pAs the research suggested, this emotionally oblivious approach was philosophically incongruent with proven science!/p ul liHow could I call myself an engineer?!?!/li liHow could I obsess about the pursuit of efficiency and solution, when my own attitude was blunting my team#8217;s effectiveness?/li /ul pI needed to do better./p pI needed to find something, rooted in math and science, that helped me understand how to refactor my way of thinking./p pI then learned about perspective and heuristic techniques. Perspective is how one looks at a problem. Heuristic is the mental shortcut one uses to arrive at a solution. Both are shaped by experience and knowledge, but the nuance in process from a variety of individuals is key./p pa href=http://www.pnas.org/content/101/46/16385.fullDr. Scott Page/a elaborates :/p h3a href=http://www.phase2technology.com/wp-content/uploads/2014/09/Screen-Shot-2014-09-03-at-11.36.31-AM.pngimg class= wp-image-8542 alignleft alt=Screen Shot 2014-09-03 at 11.36.31 AM src=http://www.phase2technology.com/wp-content/uploads/2014/09/Screen-Shot-2014-09-03-at-11.36.31-AM.png width=52 height=43 //a/h3 h3/h3 h4The diversity of an agent#8217;s problem-solving approach, as embedded in her perspective-heuristic pair, relative to the other problem solvers is an important predictor of her value and may be more relevant than her ability to solve the problem on her own. Thus, even if we were to accept the claim that IQ tests, Scholastic Aptitude Test scores, and college grades predict individual problem-solving ability, they may not be as important in determining a person#8217;s potential contribution as a problem solver as would be measures of how differently that person thinks./h4 pIt opened my eyes to how I#8217;ve been going about solving complex problems all wrong./p pIn the context of a complicated problem, there is a higher likelihood of finding a global optimum (the best solution) when you have a diverse set of team members with local optimum (their best solution). Put simply, I needed to engage more (not less) with people who were different than me./p pIn essence, given the right conditions, a href=http://www.crowdsourcing.com/cs/2008/05/chapter-6-the-m.htmldiversity trumps ability/a!/p pWhat#8217;s interesting about this research, however, is the fact that communication among members with different perspectives is very difficult./p pIn fact, as Dr. Page continues:/p h3a href=http://www.phase2technology.com/wp-content/uploads/2014/09/Screen-Shot-2014-09-03-at-11.36.31-AM.pngimg class= wp-image-8542 alignleft alt=Screen Shot 2014-09-03 at 11.36.31 AM src=http://www.phase2technology.com/wp-content/uploads/2014/09/Screen-Shot-2014-09-03-at-11.36.31-AM.png width=74 height=61 //a/h3 h3/h3 h4Problem solvers with nearly identical perspectives but diverse heuristics should communicate with one another easily. But problem solvers with diverse perspectives may have trouble understanding solutions identified by other agents./h4 pThus, we#8217;ve come full circle to why EQ is so important./p pIf team members are not in-tune with each other, the benefits gained from their diversity can be lost. It is vital, therefore, in my unabashed obsession to being an engineer, that I not only need to improve my EQ, but surround myself with colleagues who have a high EQ and learn from them./p pSo what are the characteristics of high EQ individuals? Statistically, who has high EQ?/p pSome of a href=http://www.phase2technology.com/blog/women-in-tech-continuing-the-conversation/our thought leaders/a here at Phase2 have a href=http://www.phase2technology.com/blog/observations-and-hopes-from-a-female-techies-perspective/answered that question/a./p pIf you#8217;re interested in learning more, find me as I share a href=http://www.slideshare.net/fredricmitchell/star-trek-voyager-a-model-for-a-more-inclusive-communitymy ideas/a on a building a more inclusive community at various conferences and camps!/p
Categories: Drupal Feeds