Feed aggregator

Redesigning CloudFlare

Cloudflare Blog -

CloudFlare’s original interface grew at an amazing speed. Visually, it hadn't changed much since CloudFlare’s launch in 2010. After several years of new features, settings, and ancillary UIs buried beneath clicks, it became clear that the user experience was lacking and would only get worse as we continued to add features. The question became: How could we make a UI that was versatile, scalable, and consistent?
If you haven’t yet, make sure you read Matthew’s post about the philosophy behind our new interface. This post will go into the details and the thought process behind designing our new dashboard.

Why a redesign? We needed versatility for a growing variety of users and devices

As CloudFlare has grown, we now have a large variety of customers spanning four very different plan levels. We needed an interface that would work well for both the casual owner of a single blog, an agency managing many client sites, and enterprise customers that demand ultimate control. Also, the rise of responsive design was something we wanted to take seriously — the dashboard should be versatile enough to work just as well on every device.

We needed a platform that we could build upon

We couldn’t shove new features into a ‘gear menu’ forever. We needed a navigation metaphor that would be scalable, as well as a consistent visual framework to make the development of new features easier, faster, and more easily understood by the user. We had big plans for new features when we started out; I’ll go into some of them below.

We needed consistency with a more mature brand

The CloudFlare brand has grown and evolved in the past several years. During the redesign process, we updated our visual identity system with new fonts, color palettes, and imagery for our business cards, printed items, booth displays, and videos. Our new dashboard is another step toward a newer, cleaner look.

The process A new concept

Starting with a clean slate, we had the ability to completely rethink the information architecture and visual hierarchy of the interface. Keeping years of user feedback in mind, it was time to sketch out some ideas. Below is a small sampling of many sketches that were made early in the process:

Apps

With a layout framework started, the concept of categorizing our settings and features started to take shape. These categories evolved into ‘apps' as we noticed the visual similarity of the navigation row to today’s smartphones. It also fit with the concept of adding third party apps (something we’re going to be implementing soon) to apps provided by CloudFlare. Using apps as the beginning of our framework, we had a hierarchy: a user would select a website, have a clear list of CloudFlare and third party apps, and whichever app was selected, specific settings and features would be displayed.

Modules

As our navigation solidified around the idea of apps, we got down to the smaller pieces. Within apps we put ‘modules’ that encapsulate each setting. As the name implies, these modules are modular — they’re made of several pieces that lock together creating a consistent look across the UI, even when used in a variety of ways. We decided that each module would contain a name and description, as well as a collapsible panel at the bottom. Some modules would feature a “control area” on the right side. Other more complicated modules could contain data tables, or even be a combination of both data tables and controls. Take a look at the dashboard the next time you log in and you’ll see them in their many variations.

One of the biggest improvements we wanted to integrate was inline help content. No more going off to other tabs to learn more about a setting. Help content is contained in a collapsible panel that can be expanded for further reading. We also plan on using this collapsible panel for other module-specific content, like API information, in the future.

Responsive design

We started this design process with a goal of making every CloudFlare feature adjustable from your phone. The modules mentioned above were designed to resize and reflow to your device size, allowing you to easily control CloudFlare settings for your websites. Checking the performance of your web site should be possible from a desktop machine and while running between meetings. And while it might be a bit crazy to set up an SSL certificate via your phone, but we definitely don’t want to stop you!

The new look

We established a new style guide for the dashboard with new fonts, colors, and interface elements like buttons, toggles, and select menus. When trying to make everything fully responsive, high-density display ready, and overall more performant, we decided to throw out all images with lots of drop shadows, gradients, and noise that made up our old buttons and controls and focused on making everything out of CSS. The results are a crisper, cleaner look, and a faster load.

We also created a custom icon set to use for our app icons and buttons, as well as in some new illustrations that we use to introduce a little fun here and there.

Just the beginning

This new dashboard gives us a platform to deliver more features to users while continually evolving the UI itself with greater ease. What you see today is only a fraction of what we hope to do going forward, and this isn’t the only thing getting a refresh. As Matthew hinted, our old marketing site will be getting a facelift, and a new support site is in the works. Stay tuned!

If you think our design process is something you'd like to take part in, we’re hiring.

Code Karate: More control over your Drupal Admin menu with Administration Menu Source

Planet Drupal -

Episode Number: 205

Sometimes you have a situations where your normal Drupal administration menu just won’t cut it. Maybe you have someone that needs to perform some administrative tasks on your site such as managing content and comments, or perhaps something more complex such as managing the Drupal blocks. This person might be a technical wizard, but there is also a good chance that they might not be. In fact, they might be the person in the office that calls you when their “computer is broke”.

Tags: DrupalDrupal 7Site BuildingDrupal PlanetSite Administration

The Connectivity Atlas

Drupal Fire -

Development Seed (via DrupalFire)

We have recently launched the first iteration of the Connectivity Altas, a project that centers around mapping infrastructures on a global scale. From roads and rivers to internet and electricity lines, these intricate and vast networks exist everywhere we are. Considering that infrastructure is a broad classification, mapping out the different systems provides a unique insight into how these systems are dispersed onto the globe. Since this was our first significant dive into Mapbox GL, We wanted to share some notes about our experience.

The problem

During our initial work on the project, we encountered a number of challenges associated with our workflow. I originally designed the map in Mapbox Studio importing each layer into Studio as a separate data source and styling them using Catro CSS. This workflow worked fine for a while, but overtime might have led to hundreds of sources and styles pushing the limit of our Mapbox account and our organizational skills.

The solution

We began to consider alternative workflows. Ultimately, we decided to move the project into Mapbox GL for various reasons.

  • We like vector tiles (super crisp)
  • We like rendering styles in the browser (it makes for faster styling / instant results)
  • Better organization, we used a jekyll collection to add styles into a master JSON
  • CartoCSS allows for more precise styling as well as other features that came in handy.

What we learned

Vector tile platorms (like GL) are the future of maps on the web. There are some limitations right now, but we’re looking forward to using GL for other projects. For example, we had to write our own tooltip functionality to expose the meta inforamtion in each layer, but we know the Mapbox GL folks are cooking up some code to help with that in future releases.

A collaborative effort

All of the data on the Connectivity Atlas is open and available for reuse. The intention is for this to be a collaborative project where you can help by sharing and suggesting data to add. This way we can produce a map of profound inter-connectedness as well as an oddly beautiful web of global infrastructure.

DrupalCon News: Join us for Trivia Night Sponsored by Palantir.net

Planet Drupal -

For us, DrupalCon is the most fun time of the year. There’s nothing better than getting together with our friends, colleagues, and community to work and celebrate together.   While the sessions, BOFs, and other work-focused moments are indelibly important, the bonds we build and the friendships we make are just as critical to the continued growth and success of the project. That’s why we'd like to invite you out to Trivia Night sponsored by Palantir.net.  

Matthew Tift: What I Learned about Drupal at a Go/Rust User Group

Planet Drupal -

What I Learned about Drupal at a Go/Rust User Group

Last night I had the pleasure of attending the first joint meeting of Minnesota Go and Rust users, and arrived home inspired -- not just by Go and Rust, but also about Drupal and its community.

Attending a wide variety of local meetups is something I really enjoy. Since I moved back to the Twin Cities area nearly seven years ago, I have attended meetings related to PHP, Linux, Concrete5, NodeJS, .NET, JavaScript, Flash, and more. Each of these groups has a unique community and way of doing things, although just about every one of them involves pizza, beer, and predominantly white, male participants.

Given the fact that Rust and Go are both C-like low-level languages, it might not come as a surprise that this Go/Rust user group meeting was quite technical. There were three presentations and lots of terminals on the big screen. The first speaker introduced Rust by illustrating the process for generating the Fibonacci sequence. The end result looked something like this:

struct Fibonacci { curr: u32, next: u32, } impl Iterator for Fibonacci { type Item = u32; fn next(&mut self) -> Option { let new_next = self.curr + self.next; self.curr = self.next; self.next = new_next; Some(self.curr) } } fn fibonacci() -> Fibonacci { Fibonacci { curr: 1, next: 1 } } fn main() { for i in fibonacci().take(30) { println!("{}", i); } }

At other local meetups I have attended, this could have made for a dry, boring talk. However, at this Go/Rust meetup, each aspect of this Fibonacci program was followed by remarkably sophisticated audience questions and answers about language architecture, Rust's underlying assumptions, and frequent references to how Rust compared to C, Python, Go, and other languages. I learned a lot and found it very entertaining. (Incidentally, while I personally prefer Go, I think this is a great article comparing Go and Rust -- the author likes Rust).

I have attended a lot of DrupalCon and DrupalCamp sessions over the past five years or so, and I don't recall any of them feeling like this Go/Rust meetup. Perhaps there are a lot of more technical sessions and I just avoided them. Perhaps sessions like the (Drupal) Core Conversations are very technical, but I just don't notice it as much. Whatever the case, these Rust and Go talks got me thinking about Drupal and its community.

Drupal meetings, especially in the Twin Cities, tend to be focused on bringing in new users and not leaving anyone out of the conversations. That often means less technical presentations. Furthermore, every year at the Twin Cities DrupalCamp we have made it an explicit goal to welcome new users into our community.

Getting off the Drupal island to go to this Go/Rust group was a nice reminder of just how much Drupal lets me do without ever having to think about these low-level issues. For comparison, in PHP (Drupal is written in PHP), we might do something more simpler looking to create the Fibonacci series:

$fib = [1,0]; for ($i = 0; $i < 30; $i++) { $next = array_sum($fib); array_shift($fib); array_push($fib,$next); echo $next.', '; }

Or perhaps more relevant is the fact that I can just spin up a Drupal blog for one of my friends or one of my kids, easily download themes to radically change the appearance, and quickly add sophisticated integrations without writing code. And at that point get on with my hacking, or not. My code, my data, my content. Sometimes I lose track of that when I'm working on a project with teams of people I've never met, testing my code in ways I never would have anticipated, making spectacularly complex, cool websites.

The Go/Rust meetup had the unexpected effect of reminding me that Drupal can be very laid-back and non-technical, and that the web can be the same. Not all websites will need the sophistication of Drupal 8's fancy new configuration system, and its ability to facilitate development, testing, and production environments. Drupal allows me to come home, emboldened by a meetup, and quickly jot down my unfiltered, half-baked thoughts for all the world to see, without having to think about the complexities of immutable references or garbage collection. This Drupal site lets me spill out these ideas in short order.

As Drupal becomes an increasingly capable and accommodating entrance onto the wonderfully diverse information superhighway, it's nice to be reminded once in a while of the fact that Drupal also can do a darn good job of hiding complexity and letting us get on with creating and managing our content of all shapes, sizes, and qualities.

Tags: drupaldrupal planetgorustcommunity

Beyond Decoupling: The Inherent Virtues of an API

Lullabot -

Fellow Lullabot Andrew Berry has written an article on why to decouple. If you do go this route, it’s because you’ve thought a lot about how to separate concerns. Content consumers are separated from content producers. Front-end developers are freed from the dictates of a back-end CMS. This article isn't about the separation of concerns, but rather what lies at the middle of all of these concerns— your HTTP API.

Beyond Decoupling: The Inherent Virtues of an API

Drupal Fire -

Lullabot (via DrupalFire)

Fellow Lullabot Andrew Berry has written an article on why to decouple. If you do go this route, it’s because you’ve thought a lot about how to separate concerns. Content consumers are separated from content producers. Front-end developers are freed from the dictates of a back-end CMS. This article isn't about the separation of concerns, but rather what lies at the middle of all of these concerns— your HTTP API.

Lullabot: Beyond Decoupling: The Inherent Virtues of an API

Planet Drupal -

Fellow Lullabot Andrew Berry has written an article on why to decouple. If you do go this route, it’s because you’ve thought a lot about how to separate concerns. Content consumers are separated from content producers. Front-end developers are freed from the dictates of a back-end CMS. This article isn't about the separation of concerns, but rather what lies at the middle of all of these concerns— your HTTP API.

Drupal Watchdog: VIDEO: DrupalCon Amsterdam Interview: Leslie Hawthorn

Planet Drupal -

A lively LESLIE HAWTHORN (Director of Developer Relations at Elasticsearch), finds herself momentarily corralled and questioned in a corner of the RAI Convention Center.

Besides her day-job, Leslie is involved in open source security issues and, as a second calling, mentors young women on the nuances of building careers in technology.

Privately, Leslie is an avid pickler, with a cupboard stash of yummy, lacto-fermented veggies: radishes, kohlrabi, cabbage, and cucumbers.

Video: 

roomify.us: Vacation Rentals, Hotels, B&amp;Bs, Multiple Properties and Booking with Drupal.. oh my!

Planet Drupal -

It’s now just over three months since roomify launched. We’ve been enjoying the process immensely, despite the inevitable frustration of trying to set up everything that a business requires. What has kept us going is the satisfaction of hitting product milestones, and hearing back from users and clients about how our products are helping them. (We also like getting paid - that’s awesome too!). As such, we are particularly pleased to share this update with you.

An introduction to JavaScript-based DDoS

Cloudflare Blog -

CloudFlare protects millions of websites from online threats. One of the oldest and most pervasive attacks launched against websites is the Distributed Denial of Service (DDoS) attack. In a typical DDoS attack, an attacker causes a large number of computers to send data to a server, overwhelming its capacity and preventing legitimate users from accessing it.

In recent years, DDoS techniques have become more diversified: attackers are tricking unsuspecting computers into participating in attacks in new and interesting ways. Last year, we saw what was likely the largest attack in history (>400Gbps) performed using NTP reflection. In this attack, the unsuspecting participants were misconfigured NTP servers worldwide. This year, we’re seeing a disturbing new trend: attackers are using malicious JavaScript to trick unsuspecting web users into participating in DDoS attacks.

The total damage that can be caused by a NTP or DNS reflection attack is limited by the number of vulnerable servers. Over time, this number decreases as networks patch their servers, and the maximum size of the attack is capped at the outbound capacity of all the vulnerable servers. For JavaScript-based DDoS, any computer with a browser can be enrolled in the attack, making the potential attack volume nearly unlimited.

In this blog post, we’ll go over how attackers have been using malicious sites, server hijacking, and man-in-the-middle attacks to launch DDoS attacks. We’ll also describe how to protect your site from being used in these attacks by using HTTPS and an upcoming web technology called Subresource Integrity (SRI).

How JavaScript DDoS Works

Most of the interactivity in modern websites comes from JavaScript. Sites include interactive elements by adding JavaScript directly into HTML, or by loading JavaScript from a remote location via the <script src=""> HTML element. Browsers fetch the code pointed to by src and run it in the context of the website.

The fundamental concept that fueled the Web 2.0 boom of the mid-2000s was the ability for sites to load content asynchronously from JavaScript. Web pages became more interactive once new content could be loaded without having to follow links or load new pages. While the ability to make HTTP(S) requests from JavaScript can be used to make websites more fun to use, it can also be used to turn the browser into a weapon.

For example, the following (slightly modified) script was found to be sending floods of requests to a victim website:

function imgflood() { var TARGET = 'victim-website.com' var URI = '/index.php?' var pic = new Image() var rand = Math.floor(Math.random() * 1000) pic.src = 'http://'+TARGET+URI+rand+'=val' } setInterval(imgflood, 10)

This script creates an image tag on the page 100 times per second. That image points to “victim-website.com” with randomized query parameters. Every visitor to a site that contains this script becomes an unwitting participant in a DDoS attack against “victim-website.com”. The messages sent by the browser are valid HTTP requests, making this a Layer 7 attack. Such attacks can be more dangerous than network-based attacks like NTP and DNS reflection. Rather than just “clogging up the pipes” with a lot of data, Layer 7 attacks cause the web server and backend to do work, overloading the website’s resources and causing it to be unresponsive.

If an attacker sets up a site with this JavaScript embedded in the page, site visitors become DDoS participants. The higher-traffic the site, the bigger the DDoS. Since purpose-built attack sites typically don’t have many visitors, the attack volume is typically low. Performing a truly massive DDoS attack with this technique requires some more creativity.

Shared JavaScript Compromise

Many websites are built using a common set of JavaScript libraries. In order to save bandwidth and improve performance, many sites end up using JavaScript libraries hosted by a third party. The most popular JavaScript library on the Web is jQuery, with around 30% of all websites using some version of it as of 2014. Other popular scripts included on many websites include the Facebook SDK, and Google Analytics.

If a website has a script tag that points to a third-party hosted JavaScript file, all visitors to that site will download the JavaScript and execute it. If an attacker is able to compromise a server that is hosting a popular JavaScript file and add DDoS code to it, the visitors of all the sites that reference that script become part of the DDoS.

In September 2014, RiskIQ reported that jQuery.com’s website was compromised, which hosts a very popular JavaScript library that could have easily been replaced with a malicious one. The threat of attackers injecting malicious JavaScript into millions of sites is no longer theoretical.

An Aside: Introducing Subresource Integrity

The problem of third party assets being compromised is an old one. There are no mechanisms in HTTP to allow a website to block a script from running if it has been tampered with. To solve this problem, the W3C has proposed a new feature called Subresource Integrity (SRI). This feature allows a website to tell the browser to only run a script if it matches what the site expects.

Take the following script tag:
<script src="https://code.jquery.com/jquery-1.10.2.min.js">

The browser will download the .js file and run it no matter what the content of the file is. If someone were to compromise the hosting site’s servers and replace the file with a malicious script, the browser would run it without question.

With SRI, you can tell the browser to not run the script if it does not match what you expect. This is done using a cryptographic hash. A cryptographic hash is a way to uniquely identify a piece of data. It’s like a fingerprint: no two files have the same hash. With SRI, you can include a hash of the authentic version of the script using a field called “integrity”. After downloading the script, the browser will compute its hash and compare it with the expected hash from the script tag. If they don’t match, then the script has been tampered with and the browser will not use it.

<script src="https://code.jquery.com/jquery-1.10.2.min.js" integrity="sha256-C6CB9UYIS9UJeqinPHWTHVqh/E1uhG5Twh+Y5qFQmYg=">

Adding this tag protects your site visitors from a compromise in the third party JavaScript host. Computing the tag is a simple process that only has to be done once. There’s even a service that can compute the hash for you.

This feature is not currently supported by many browsers, but it is currently under development for Chrome and Firefox. SRI is also useful for preventing Cross-site Scripting (XSS) attacks.

Server compromises are often detected and fixed quickly, so attackers have turned to other ways to insert malicious JavaScript into websites. The newest way they are doing this is a technique we’ve discussed previously: a man-in-the-middle attack.

Man-in-the-middle

Websites get to your browser from a web server by traversing the networks of the Internet and hopping from machine to machine. Any one of the machines that sits between your browser and the server is able to modify the data in any manner, including changing the content of HTML or JavaScript. If the computer sitting in the middle of a communication does something malicious, like adding bad JavaScript to a webpage, this is called a man-in-the-middle attack.

Modifying websites in transit is common monetization technique for ISPs and WiFi providers. This is how some hotel networks, cellular networks and others inject ads and tracking cookies into websites. Self-respecting businesses typically don’t inject attack code into websites, but as part of the Internet they have the capability of doing so.

If an attacker gains a privileged network position similar to an ISP —like a network interconnect or peering exchange— they can also inject JavaScript into websites that pass through their network. If the injected JavaScript contains a DDoS script, all the visitors to the website become DDoS participants. This can happen to any website or web asset that passes through the rogue network.

To make things worse, if the path to popular JavaScript file happens to go through the attacker’s network, the number of browsers participating in the attack can increase dramatically.

The technique that fully stops this sort of code injection is encryption. With HTTPS, all communication between a browser and a web server is encrypted and authenticated, preventing intermediate parties from modifying it. Making your site HTTPS-only prevents your site from being modified in transit. This not only prevents ISPs and WiFi providers from injecting ads and tracking cookies, but it prevents your site from being used in a JavaScript DDoS.

Conclusion

JavaScript-based DDoS attacks are a growing problem on the Internet. CloudFlare sees, and routinely blocks, these attacks for the millions of websites that use our service, and we learn from every attack we see. JavaScript based DDoS can be launched at any time, so prevent your site from being part of the problem by going HTTPS-only. CloudFlare provides HTTPS and the ability to go HTTPS-only for all customers including those on the free plan.

Jim Birch: Integrating Drupal with Cloudflare

Planet Drupal -


The super smart lead developer at Xeno Media first brought the Cloudflare service to my attention as it was integrated with one of the hosts we were using.  We experimented with a site that was experiencing outages due to traffic spikes it received after sending an email newsletter.  After the switch, the server never went down again, saw considerable speed improvements, and we were able to quadruple the number of emails we could send per hour, with no performance hits.

According to Cloudflare, sites that use their service:
  • Load twice as fast
  • Use 60% less bandwidth
  • Have 65% fewer server requests
  • Are way more secure

If a free Content Delivery Network that makes your site seriously super awesome, incredibly blazing fast wasn't enough, the more you look at Cloudflare's features, the more you will be impressed.  Not only does Cloudflare serve your site from a distributed network, closer to where the user actually is, it optimizes, aggregating content from different external services (think Google/Facebook/Marketo) into one, speeding up delivery to the browser

Read more

Issue 187

The Weekly Drop -

Issue 187 - April, 30th 2015 From Our Sponsor Accelerate Drupal apps development with Zend Z-Ray

Get full visibility on functions, modules, forms, locks, hooks, and user info for better understanding of the code structure and ultimately higher code quality and increased performance. See it in action live or learn more.

DrupalCon All the sprints at and around DrupalCon Los Angeles Come To The Community Summit At Drupalcon

"The day will be spent discussing and planning techniques to help communities flourish and grow. "

Alcohol At Drupalcon Social Events – Making The Choice

"DrupalCon is all about fun, inclusivity, and self-expression, and if that means not drinking, we want to make that not only easy, but cool to boot." Very cool indeed.

Articles How To Contribute To Translations In Drupal Projects

Learn how you can help with translation on Drupal.org from Drupalize.me's Amber Matz.

Improve Your Frontend Toolset With Grunt And Libsass

"Learn how you can leverage Grunt and LibSass as groundwork to improve your Frontend Development process and deliver better optimized sites for clients."

Mediacurrent's Contrib Committee Status Review For March, 2015

Damien McKenna shares what the Mediacurrent crew have been doing to contribute to Drupal.

Automating Living Style Guides In A Drupal Theme Next Generation Web Apps Using The Service Worker Sites That Cannot Fail -- Forecasting The Big Storm

Acquia's Allison Nolan discusses the kind of demand that the Weather.com Drupal site is under. An interesting read.

Drupal 8 Drupal Core Updates for April 22nd, 2015

Drupal 8 is 2 to 20 times faster now and much more from M Parker.

Drupal 8 Configuration Management With Features

"Features for Drupal 8 will exist and it is already in alpha state. This may be surprising to those who wrongly assumed that Configuration Management was going to supersede Features; but, as we explained before, it all comes down to understanding how to use Features the right way in Drupal 8."

#d8Rules Update April 2015

Find out what progress has been made porting Rules module to Drupal 8.

Honeypot For Drupal 8, 3 Years In The Making

Jeff Geerling share's his experience porting the great Honeypot module to Drupal 8.

Is Your Project Ready For Drupal 8?

If I had a dollar for everytime I have had to answer this question. Mark Ferree share's his thoughts on the matter.

Simpletest With Behat For Drupal 8

Gizra's Roy Segall share an example test and code for Behat integration with Drupal 8.

Tutorials Importing Huge Databases Faster

Lullabot's Juan Pablo Novillo Requena offers great advice for dealing with very large databases.

Projects Drupal 7 Total Language Fallback

Alex Tkachev or Amazee Labs shares a complete solution for the language fallback on your Drupal site with the Language fallback module.

Scheduling Posts With Scheduler

In this post Jim Birch shows us how to use a great module for scheduling content.

Voicecommander

The Voice Commander module automatically makes voice commands for navigating the entire menu system of your Drupal site, using Web Speech API.

Releases Addressfield 7.x-1.1 Coder 7.x-2.5 Coder 8.x-2.2 Commerce_Kickstart 7.x-2.23 | Drupal.org Commons 7.x-3.24 Faqfield 7.x-1.4 File_Entity_Swf 7.x-1.0-Rc2 Mail_Debugger 7.x-3.0 Openoutreach 7.x-1.18 Purge 7.x-1.7 Redis 7.x-3.4 Speedy 7.x-1.17 Podcasts Drupaleasy Podcast 150: Ultracat (Cathy Theys - Drupal Code Governance) Drupalize.me Podcast 62 : Distributed Design Talking Drupal #093 - Easy Security Tips There's A Module For That! Don't Use It! With Ted Bowman - Modules Unraveled Podcast Yhteisöllisyys and Global Drupal: "Friendships Beyond Business" - Acquia Podcast News The Drupal Apprenticeship Qualification

This week Hedley Smith announced an offical apprenticeship qualification for Drupal in the UK. As a big fan of apprenticeship programs I think this is just great.

Jobs List Your Job on Drupal Jobs

Wanna get the word out about your great Drupal job? Get your job in front of hundreds of Drupal job seekers every day at Jobs.Drupal.Org.

Featured Jobs Senior Web Developer

USC Marshall School of Business

Drupal Developer

The Economist Group London/GB

Drupal/PHP Software Engineer - Fulltime (near BART in SF)

Business Wire San Francisco/CA/US


Acquia: PHP Reset, PHP Renaissance: Unify everything in PHP with Composer

Planet Drupal -

Language Undefined

It was great to get the chance to sit down and talk with Jordi Boggiano at SymfonyCon Madrid 2014. Jordi is responsible for Composer, one of the most important pieces of technology that is driving PHP interoperability and the PHP "renaissance" of the last couple of years. He's also on the Symfony2 core team, "and bad about telling things about myself."

Expresstut: Using the WOW js module in drupal

Planet Drupal -

In this tutorial we will be using the wow js module for revealing different animation effects on various blocks on the site while scrolling. To follow along in this tutorial, you would need to download and install these three modules

Once this modules have been installed, you can simply click on any block on your site, go to configure block and a new section for animation should appear where you can then add an animation effect to that block.

KatteKrab: Constructive Conflict Resolution

Planet Drupal -

Thursday, April 30, 2015 - 08:09

I'm speaking at DrupalCon Los Angeles. 5pm, Tuesday 12 May in the 518 - Trellon room.

I first spoke about Constructive Conflict Resolution in Amsterdam at DrupalCon last year. I posted the slides, recording and speakers notes from that talk to the PreviousNext blog.

I'm reprising that talk in Los Angeles because someone else is now unable to make it, and I was asked if I could fill in. When I originally proposed the talk for LA I had planned to rework the slide and narrative - but unfortunately won't have much time to do that before the conference. However this is a conversation starter, and we'll have an opportunity in the room to discuss how we might embrace conflict as a force for good, as a force for progress. How to harness it, how to minimise it's potential for harm.

I hope to see you there!

Constructive Conflict Resolution will be in the core conversations track at DrupalCon Los Angeles.

Promet Source: Melding AngularJS With Drupal Sites

Planet Drupal -

After spending the weekend going through a rather excellent (I thought) video overview course on AngularJS, my head was spinning with the possibilities when it came to building Drupal sites that were much more responsive in terms of loading and displaying content. So, I decided to start working on some proof of concept modules that would help me better understand how to effectively meld these two tools together.

Pages

Subscribe to Cruiskeen Consulting LLC aggregator