Today, I am excited to introduce you to our new digital agency: FFW. Over the past several months, we have been working at Blink Reaction and Propeople to bring the two agencies together under a single unified brand. Through the process, we have reflected on the great successes achieved by the individual agencies throughout our histories. But more importantly, we have come together to define the core vision that will drive our new joint agency into the future.
FFW is a global digital agency built on technology, driven by data, and focused on user experience. We bring together 420 people working across 19 offices in 11 countries, to form a new agency that is a part of the Intellecta Group (listed on the NASDAQ OMX).
We find ourselves in a unique position in the digital agency marketplace as recognized technology experts that also excel in data-driven digital strategy and creative work.
No other agency understands the intersection of technology, strategy and creativity as well as we do.
We are excited to begin a whole new chapter together as FFW. It is a bittersweet moment, as the individual stories of Blink Reaction and Propeople come to an end, but I absolutely can’t wait to see what the future holds for our new agency.FFWdigital agencyCheck this option to include this post in Planet Drupal aggregator: planetTopics: Business & Strategy
Registration is officially open! We will be at the Los Angeles Convention Center until 6:00pm today and will open tomorrow 7:00am!
When you walk down South Figueroa street, you will turn right on 12th Avenue to the entrance of the West Hall Lobby. It should look like this:
As you get closer you will see the blue carpet, your official cue that you have arrived at DrupalCon Los Angeles! Welcome! Enter the doors and we will see you at registration.
After using the new gmail 'tabs' for a while, I began just ignoring anything not in the primary tab. It turns out, this included notifications from Godaddy regarding domain renewals. I neglected to renew devbee.com, and as sure as the sun rises, it got scooped up immediately by a ... person.
I'm headed to DrupalCon on Monday morning, and hope to spend most of my time recruiting users and sprinters to DevShop development.
The DrupalCon sprints are an amazing opportunity to work together with people in person. Despite being very remote-oriented, there really is no replacement for face to face work, especially when it comes to complex projects like DevShop.
There are a number of opportunities this week to come learn about devshop.Sprints
I'll be sprinting on DevShop on Monday afternoon, all day Wednesday, Thursday, Friday and Saturday! There are a few sessions and other BoF's I plan on attending, but my main focus will be to help the devshop community meet, recruit developers, give demos, and assisting setup with anyone who is interested.
There is also a master Sprints spreadsheet available with the schedule for all sprinters on all topics.
Add your name to the list!
I've got a BoF scheduled on Tuesday at 5pm for a DevShop Workshop. I'll be there ready to help anyone who's interested in installing, using, or developing devshop. See you in room 510!Birds of a Feather: Aegir!
Come join us for discussing Aegir at large at the Aegir BoF. We'll probably be mostly talking about the upcoming 3.0 release, and what the plans are for 4.0 after that.
This is an important time for Aegir, as with any new release, we've got the opportunity for improvements and major changes in the next version. Come join us to discuss what the future might look like.Other Sessions & BoFs
There are a number of sessions and BoFs I am going to keep my eye on to learn about more techniques people are using for dev ops, continuous integration and testing, and more:BoF: Continous Delivery
Now that DevShop can be used as a continuous integration, testing, and delivery platform, it will be interesting to discuss the overall process in this group.BoF: Ansible for Drupal Infrastructure and Deployments
I am a huge fan of GeerlingGuy, even if he doesn't know it yet. We use Ansible to install devshop, and ansible roles are at the core of the next version of devshop, which will be able to manage and deploy servers for any software in any language. I'm really looking forward to this BoF.Session: PHP Containers at Scale: 5K Containers per Server
David Strauss of Pantheon is going to pop the hood to show how they can handle massive amounts of sites per server using containers. DevShop doesn't use containers, yet, so I am very keen to learn as much as I can so we can get started.BoF: Leveraging Hybrid Cloud Orchestration
This BoF is being put on by the author of the Cloud module for Drupal: https://www.drupal.org/project/cloud
This should be very interesting because there is a lot of similarities between this module and the vision for DevShop 2.0.0.Session: 4x High Performance for Drupal - Step by Step
I'm looking forward to this session because we want to incorporate high performance tools into devshop out of the box. I hope to learn enough from this walkthrough to start adding performance enhancements to devshop hosting immediately.Get in Touch DrupalConPlanet Drupaldevshop
Taking a content type and displaying it in a Drupal View is core to any Drupal website. As you venture into views you will learn hundreds of ways to manipulate content to change the way the end user is able to interact with the content. To help enhance this, you can use the Views Isotope module. This module uses the jQuery isotope library to dynamically filter views content. As the title states, it’s pretty fancy.
We see our company's purpose as being to facilitate smart people in getting great things done - not telling them exactly how to do it.
Nothing limits people's motivation and productivity more than jumping through irrelevant hoops.
As we've grown we've realised that it has become more and more important to decentralise decision making and share information effectively.
Over the past six months we’ve been experimenting with some big changes to enable a more empowered and self-directed approach.Underlying principles
We have some beliefs backing the changes:
- our team members are intrinsically motivated and know how to get their own job done best
- open access to information is power - use tools to make your company data useful and accessible
- everyone must have meaningful input for a culture of continous improvement to be effective
- we should focus on results not process
- we do knowledge work and our approach needs to embrace this - measuring who is in the office at 9am is resassuringly tangible but mostly irrelevant to doing great work
- principles used by people with good judgement are a lot more useful than lots of rules
There are strong commercial drivers:
- our growth means we need to be able to recruit from a wider talent pool
- we wanted to reduce the need to introduce middle management in our expanding team
- our increasingly international client base means that better distributed working practices were part of delivering great client service
- people told us that flexible working is an important part of our overall recruitment package
We realised that we needed to change the way that the agency was managed.
Simon and I worked to understand which the things we both did were leadership driven and which were management that could be shared.
Through continuing review we enabled team members to take on responsibility and control as much as possible. We were confident this would increase team engagement.
The role of the leadership team rapidly changed, and our focus became to facilitate and coach our teams, rather than to manage and direct.
Our focus has been on getting out of the way of our increasingly self-organised teams delivering digital projects.
The challenge has been as much to change our own individual people management habits as it has been to evolve the company's processes.
Old habits die hard!We're by no means the only ones thinking this way
We’d seen, heard and read a lot about organisational culture, leadership and change in other companies.
Aaron Dignan of Undercurrent also has an interesting roundup of different organisational models including Holacracy, Agile Squads and Self Organising.
We invested a lot of time in well configured and well used project and management information systems such as Xero, Harvest and Forecast, which means everyone can now see what’s going live across the agency.
Having better information helps team members make the best decisions on how to deliver their part of a project.
We’ve strengthened our specification, delivery and testing practices so that project delivery is standardised across the agency and easy to monittor.
We’ve also deployed communications tools that work seamlessly, so we don’t think about whether colleagues are on a different floor or on site in a different country. This has included adding softphones on our laptops and embracing collaboration tools such as Slack and Google Hangouts.Results orientated working patterns
- Our team members can work when and where they want - as long as they are effectively collaborating with clients and colleagues
- We focus and target on the output- not whether you login at 8:55am or 9:05am.
- Top down manager-led appraisals are a thing of the past. Our team members now undertake a personal and peer review every three months to set their own development goals.
- Self-led development is backed with an unlimited training budget.
- Every team member has their own annual budget to spend on R&D, technology, tools, equipment - anything that helps them do their job better.
We put together a draft Google Doc 'Deeson Handbook' that everyone could contribute to and had a dedicated Slack channel for discussion.
We spent most of January at a discussion stage. There was very little debate about the principles behind the approach but through collaboration we made some pretty big changes on the details, for example:
- contactability - making it clear that the principle was that you were easily contactable rather than exactly how
- holidays and leave - simplifying the holiday policy to just work in days and half days
The handbook is perpetually in beta as we’re always reviewing our approach. It is the single document that explains our new approach, acts as a reference for new joiners and a guide to how things work in practice at Deeson.How has it gone?
Three months in and we’re really pleased with the results of the changes so far.
We were expecting at least one major problem and we haven't had it (yet!)
Team engagement and satisfaction has improved and we’re seeing increased ownership and autonomy among project teams.
Most importantly we’re confident that this is leading to better digital products and services for our clients - which is something we’re very proud of.
If you’re interested in the details then feel free to ask questions or request a copy of our Handbook document.
There are many articles out there talking about the advantages and disadvantages of one or another cloud provider. But most of them are sponsored, biased and really none of them poinpointing what really matters. They are distracting, focusing your attention away of what they don't want you to know.More articles...
- PDF Generation in PHP
- Drupal Session Handler: everything you need to know
- Decent PDF generation in Drupal
- Getting #2,000 requests per second without varnish
- Adding native JSON storage support in Drupal 7 or how to mix RDBM with NoSQL
- Calling .Net Framework and .Net Assemblies from PHP
- Drupal on IIS or Apache
- How to use NetPhp
- Build GIT on Windows from Sources
- Node Comment and Forum working together to boost user participation
A heat map is a graphical representation of data where the values taken by a variable in a two-dimensional map are represented as colours. — Wikipedia
Today we are introducing the simplest module ever: Heatmap.me Drupal integration.
This module, after activation, deploys the necessary script files to allow integration with the Heatmap.me service.More articles...
- Setting up Code Syntax Higlighting with Drupal
- Benchmarking Drupal 7 on PHP 7-dev
- Node Comment and Forum working together to boost user participation
- Hiding the fact that your site runs Drupal
- Distinct options in a views exposed filter: The Views Selective Filters Module
- Deploying Drupal Like a Pro
- Benchmarking Drupal 8 on PHP 7-dev
- Using Heatmaps to boost conversions: Heatmap.me Drupal integration
- Deploying changing module dependencies with Drupal
- How to use NetPhp
So a couple of years ago, I wrote a short story for my daughter, mostly because I felt like writing and it seemed like a good idea at the time.
More recently, I decided to get the story illustrated. I hired Adam Fairchild, someone I met over twitter, who did an absolutely fabulous job! I printed out some copies for her birthday, and she and all her friends absolutely loved it.
It's a short, cute story (a mere 30 pages, including illustrations) that I think works for any kid whose graduated from reading just picture books.ArticleDrupal
While working on new Qwintry.com tasks we needed to provide our operators the interface to rotate uploaded images quickly (and I wanted to rotate the original image file). Surprisingly, I could not find anything like that among d.org modules so I have to come up with my own solution. I was expecting to finish this task by 1 hour, but, as it often happens, the way to right solution took a bit longer.
For the final code scroll down to the end of the post, since now I will be showing some ugly code that you don’t really need :)
Here is the UI for operators:
These links are created in the node—[type].tpl.php in my theme:
ComputerMinds.co.uk: Mobile first, later : 10 Steps for retrospectively making your Drupal site responsive
On April 21st, Google updated their mobile search algorithms to boost the rankings of mobile-friendly web pages, whilst conversely decreasing rankings for pages that have been designed only for large screens. This change is likely to have a big impact on many Drupal sites, and ComputerMinds have seen a surge in requests for retrofitting responsive themes onto existing Drupal sites.
Extended Sprints are a real thing and in DrupalCon Los Angeles they are in awesome sky-rise building for supreme enjoyment! If you are planning on coming to DrupalCon Los Angeles Extended Sprints for the week befoe DrupalCon Los Angeles, you can head to 601 South Figueroa Street. The building looks like this:
These apps are not directly affiliated with the event, so questions and support inquiries should go to Lemberg.
Thanks to Lemberg for their efforts!
The purpose of this blog post is to tell others how in one week I went from fruitlessly searching the Issue Queue, to contributing to Drupal 8 while interacting with core contributors...and how you can too! I did this by triaging Issues that had the Novice Tag with the help of Drupal Mentors and I documented the process along the way. There are a ton of Issues left to triage and core contributors need your help! So, if you have some experience with Issues and/or core, you can help us too!
How did I get to this point where I was triaging Novice Issues?
As a new contributor to Drupal I was directed to look at Issues tagged Novice to help out. And after looking at the first few Issues I was left befuddled and confused to the point where the only way to express my feelings was through a cat meme.
In the wake of my confusion I mostly drank vanilla frappuccinos and produced over-caffeinated curses about the long list of Issues to chose from, and my inability to contribute to any of them. This is when I turned to the Drupal community! I was able to lean on the help of senior contributors such as Aimee Degnan, Kristen Pol, and John Storey.
I would link them to an Issue and say “Ummm, what?”. With their help I was able to contribute to ongoing Issues like Installing in a non-English language fails for command-line installations , and adding a Beta Phase and Remaining Task template to “Rewrite the documentation of content_translation_entity_type_alter()” . I became very happy with my contributions and wanted to help more!
It was about this time, recalling my elaborate curses regarding the Issues queues, Kristen Pol pointed out an apprenticeship that Cathy Theys was currently offering regarding going through the Issue queue and triaging the Novice Tags. Conveniently, this is the exact thing I was calling for earlier that day! Cathy is a Drupal 8 Core contributor, Drupal Mentor, and overall Leader. She knows how to do the things and is patient enough to teach everyone how to do them. In the first week of working with Cathy part time I was able to: learn how tell if an Issue should have a Novice Tag, interact with fellow core contributors, and even become a mentor for the upcoming DrupalCon in LA! :-) If any of those things sound like something you’d like to do, stop reading right now and shoot me an email or ping me on IRC in the channels #drupal or #drupal-contribute, my IRC name is Patrick_Storey!First steps to triaging Issues
I started by learning what the “Novice Tag” stands for. Apparently it means “new contributor to Drupal”. This contributor could be an expert in their field, but merely just new to contributing to the Drupal project. This runs contrary to what I thought, which I assumed it meant a Task for beginners in the field like myself. This definition alone really cleared up worlds of understanding for me. So that’s the first thing one must learn, what we mean in Drupal when we say “Novice Task”.
After speaking with Cathy Theys about where we should start we decided to start with Issues that were "Tasks" because those are at a high risk of not being committable. Drupal 8 is currently in Beta. And some Issues are about changes that are not going to be in the current version of Beta. So for new contributors we decided it was best to only have them work on Issues that would get in the current version of Beta. I certainly didn’t want to work on an Issue, do it correctly, only to have to wait a year to see the results. I wanted to link it to others and brag about it now!
Luckily the Drupal community has already thought about what makes a good Novice Issue and created a handbook for common things to avoid and use in triaging Issues. The Novice Tasks handbook page documents what makes a good or bad Novice Task. With this powerful handbook at our disposal we are ready to triage Novice Tag Issues!How to search for Beta Issues with the Novice Tag
Start by searching for Novice Tasks in the Drupal 8 Issue queue This should produce a screen with these filters selected.
This information is to help decide if an Issue still has Novice Task(s) on it. Here are the steps I take when first reviewing an Issue:
- Read the Issue Summary, read the remaining Tasks, read the last few comments. Can you identify what the next steps are?
- Look for the comment where the Novice Tag was added. To do this use the browser find (control-f or cmd-f) and search for the +Novice note. Sometimes the Tag gets added and removed often, look at each scenario.
- What did the person say in their comment when they added the Novice Tag? Has the Task been completed already? If so, then there may be no other Novice Tasks for the Issue.
- Is the Issue Summary up to date detailing which Tasks have been done, and which Tasks still need to be done? If not this Issue will need an Issue Summary update before it remains a Novice Issue. You can do the Issue Summary update yourself following this documentation or Tag the Issue with a “Needs Issue Summary update” Tag, comment why it needs an Issue Summary update, and reference the documentation.
- Are the Tasks linked to a contributor Task document saying how to do the Task?
After reviewing the Issue I then decide if the Issue should have the Novice Tag on it or not.
- Compare the information you have gathered with the Novice Tasks documentation to see if this Issue meets the requirements for a Novice Tag
- A good way to see this is to review the Task or Issues to avoid for a Novice Tag documentation.
- If the issue meets the criteria of an “issues to avoid”, then the Novice tag should be removed.
- If the task in question that the Novice tag was added for meets the criteria of a “tasks to avoid”, then the Novice tag should be removed.
This can seem like a confusing thing to do at first, but feel free to ping me on IRC in the channels #drupal or #drupal-contribute, my IRC name is Patrick_Storey. After doing a few Issues together this process will become a lot easier to understand!Template for the removal of a Novice Tag.
When removing the Novice Tag, this is a good template to follow:
- Delete the Tag by erasing it from the “Issue Tags” section.
- Then leave a comment saying why, and cite the documentation to back up your reasoning. Such as below.
I am removing the Novice Tag from this Issue because [why]
I’m using this documentation as a source: https://www.drupal.org/core-mentoring/novice-tasks#avoid
- You should put your reason for removal in the [why] part of the above template
Sometimes there are things we can do to the Issue to keep the Novice Tag. Such as providing a Beta Evaluation or updating the Issue Summary.
- If a "Task" has been assigned the priority of “Normal” it should have a Beta Evaluation. You may perform a Beta Evaluation following the documentation on how to evaluate Issues.If you can not perform a Beta Evaluation at that moment,
- comment that it needs a beta evaluation, why (it is a Task of Normal priority) and reference the contributor Task documentation for how to do a beta evaluation in the comment.
- add the Tag: needs Issue Summary update
- update the Issue Summary, adding a remaining Task of "do a beta evaluation". To aid in this endeavor the dreditor browser plugin has a button for "Insert Tasks", which inserts a HTML table template. Place your cursor in the remaining Tasks section of the Issue Summary, then hit the “Insert Tasks” button. Then uncomment any table rows that you have noticed are remaining Tasks, especially the row to do a beta evaluation.
- Use Dreditor when starting a Beta Evaluation. This will provide you with the “Insert Beta Evaluation” button
- When you click the Beta Evaluation button you will get an output like this
- Be careful as some of the table rows in the template are not spaced out in a clear manner, there is an Issue opened for dreditor that is discussing a work around
- I put spacing for each new instance of a table row . This will result in the spacing to be like this.
- To properly fill in the form, uncomment the relevant rows and put why that row is relevant.
- If the Beta Evaluation results in the Issue needing to be postponed, remove the Novice Task because the Issue will no longer be valid for this version.
- Then hit save.
- If you are doing this for the first few times, or the update you did was a bit complicated, paste a link to your comment in IRC in #drupal or #drupal-contribute so someone else can check if it looks correct. Ping Patrick_Storey or YesCT just by typing their name when you say something in the channel. (If they are not in the channel, just post it to the channel in general, please do not ask anyone else specifically to check.)
Also see the contributor Task handbook page on how to evaluate if a Drupal core Issue is allowed in Beta for further guidance.Examples of Issues I’ve changed
Here is a link to one of the first Issues where I removed a Novice Tag: https://www.drupal.org/node/507502. In this example I removed it for having over 100 comments on the Issue, listed my reasons, and the source documentation I was using.
Here is a link to an Issue where the Novice Tag remained but I provided an Issue Summary update, and a Beta Evaluation: https://www.drupal.org/node/2478535. I kept the Novice Tag as this Issue had a request to update the patch to incorporate feedback from a review.Have any questions?
If you have any questions feel free to hop onto the Drupal chat on IRC in #drupal or the contribution channel #drupal-contribute, or come to the weekly “Triaging Novice Issues office hours” Google hangout at 2pm-4pm PST (21:00-23:00 UTC) on Wednesdays! You can add the Mentor Calendar directly to your Google Calendar to see notifications of when the office hours are! Or feel free to join the Drupal Mentors group to keep up to date with all Drupal mentoring!
The Installing Git series is a free series that walks you through the process of installing Git for the first time and/or updating Git to the latest release on both Windows and Macs.
Installing Git on Windows is pretty straight forward, you just download the "Git for Windows" installer, and step through the process.
On a Mac though:
* You might not have any version of Git installed
* You might have the version that comes with Xcode or the Command Line Developer Tools
* You might have the version from Apple as well as an official install
* Or, you might just need to update an existing official install
This series covers all of those scenarios to get you updated to and running on the latest release.
It also covers the basic Git configuration options you need to set in order to use Git effectively.
So, what are you waiting for? Watch them now! They're free!Tags: Gitplanet-drupal
We’re excited to announce this talk, Content After Launch – Preparing a Monkey for Space on Wednesday, May 15, 2015 from 5pm to 6pm at DrupalCon LA!
So what’s it all about? Well, coupled with a silly metaphor, I’m going to be talking about what happens to content during various stages of a website build, from the initial kickoff, through the production, and well after launch. The talk will touch on:
- how all team members can get involved in the success of a launched website.
- setting and managing expectations for what it takes to run a site post-launch.
- everything you might have missed while focused on designing and building the website.
Come for the metaphor, stay for the juicy takeaways! Spoiler alert – there will be an abundance of monkey photos.
In one of our latest projects we developed a Facebook app which integrates with Drupal. Even though Drupal 7 has a powerful set of core tools to manage files and images, using it would unnecessarily overcomplicate a simple PHP app.
Drupal 8 is skipping through the betas and it won’t be long until we’re staring at a release candidate. With that in mind, i’m now taking the time to learn some of the key concepts that you’ll need to know as a day to day site builder using Drupal 8.Custom Config Entity Types
A custom configuration entity type referred to as a config entity for most of this article is a custom definition of an entity that allows you to provide a config class, validation schema and custom storage.
They'll have hundreds of practical usages during development custom development. To give some examples, core uses them for user roles, blocks, image styles and plenty more. Use your IDE to see what’s extending ConfigEntityBase if you’re interested.Creating Our Config Entity Type Schema
First up, lets define our schema. The schema allows us to say what fields our config entity should have and what type those fields should be.