We’ve already discussed why accessibility matters and whetted your appetite on accessibility by providing a few simple things you can do to make your site more accessible. Now it’s time to look at accessibility in forms, a common component of just about every site.
The worst time to read software documentation is when you're trying to fix something that is broken and you have no idea why. I'd say it's like shopping when you're hungry, but it's actually the opposite. When stuff breaks for no apparent reason and you're on edge it's easy to notice every little issue with the docs, and you instantly form a very strong opinion on documentation.
The good news is that as a Drupal developer, you have tons of awesome documentation just a click away on api.drupal.org or drupal.org/documentation/develop and contributed module documentation is better than ever. Even though almost everything you could ever want to know about Drupal internals is available on api.drupal.org (even the source code!) sometimes you need to combine that with contributed docs, or dig in a little deeper.
That's exactly what I had to do while working on the first few chapters of Model Your Data with Drupal. Hooks like hook_entity_info() are well documented on api.drupal.org, but the Entity API module adds it's own options to the mix. Entity API has great docs on it's options as well, but there isn't a lot out there that thoroughly documents them together, or the interaction of their options.Read more
Dialogs and Modals are an important UX pattern and can be used effectively both to provide information and to handle user interaction.
A key use for Dialogs and Modals in Drupal is to present a new user interaction without losing the original context. For example, when editing Views settings the modal allows the user to be presented with a new interface without navigating away from their original location.Displaying Modals in Drupal 7
In Drupal 7, there are a number of approaches and modules for displaying and working with modals and dialogs. Views UI is probably the most common place where sitebuilders interact with modals in Drupal 7, closely followed by Panels/Page Manager. Both of these use modals for simplifying the user interface and the lazy-loading of elements when needed, keeping the interface uncluttered until a specific user interaction is required.
In Drupal 6, there were a number of dialog/modal API modules – with varying popularity – including Modal Frame API, Dialog API, and Popups API, but none have even reached an alpha release for Drupal 7, leaving Ctools Modal as the de facto API for Drupal 7.Common Use, Different Approach
While each Drupal 6 and 7 modal/dialog module has a common use-case and set of requirements, each implement the functionality in their own way. Additionally, many of these use a Not Invented Here paradigm to roll custom solutions into a problem that’s already been solved in the wider web-community. As a result, many of these solutions are lacking in certain areas, such as accessibility. Also, given the range of different solutions and APIs, DX and consistency suffers.
Drupal 7 already includes the jQuery.UI library which itself contains a Dialog component. The Views modal uses the jQuery.UI Dialog while the Ctools module doesn't – further emphasizing the disconnect in approaches.
With Views coming into core in Drupal 8, we needed a Dialog/Modal API for it to use; this led us to develop the current solution, meaning that core now has an API for this functionality.
I recently had to add a new content type to an existing tabled view... the thing was that one content type had an extra field to define a link... fine.. I figured I could go in and use Views PHP.... it's a hacky solution, but a few lines and I'd be out the door... curiosity got the better of me... I know Views PHP is a bit déclassé, so for good measure I googled for a solution, and pretty quickly stumbled on Views Conditional... the documentation is clear, but I figure a few screen shots won't hurt, and may encourage the next nerd looking for a better way to set either-or's in their views...
Steps to get some variance in your views
Warning: mildly graphic medical descriptions referenced below...
7 years and 6 months in the making, I very much anticipated my 50th Drupalcamp. As seems to happen at least one time each year, I flew straight from one event to another. I had my 2nd speaking gig at SxSw in Austin then flew directly to Chicago for MADcamp. I love the new name: Midwest Area Drupal Camp!
My Drupal 8 Live Demo at SxSw was well received. When I proposed the session, I thought for sure we’d be in a Release Candidate. As it turned out, Drupal 8 was only at Beta 7. I walked through demonstrations of creating content types and views and placing blocks with the new layout system. Matt Cheney joined in for a short but powerful demo of Configuration Management. Over 20 Attendees followed along with their Pantheon instances which were built directly from Drupal 8 HEAD. This gave us FAR FEWER bugs than Beta 7 contained.
My Pantheon training class at MADCamp in Chicago went very well. We were converting configuration to code via features and committing the code to the repository, then pushing it up the deployment chain. As is always the case, the attendees marveled at how a modern Development Operations workflow could be achieved without being a sysadmin or paying for multiple servers and glueing them together with scripts.
About 9:30 on Saturday 3/14, The Only Real Pi Day Of Our Lives, I was walking in downtown Austin on 6th street and got me left foot hooked into a storm drain as I navigated the curb back up to the sidewalk. I went down FAST and planted on my side with my left arm fully extended. Those nearby heard the THUD and rushed to help. I got right back up. Brushed off some sidewalk debris and marveled that nothing hurt and there was no blood! End of story… Not quite…
The Ugly: [VERY UGLY]
As the goose egg swelled up near me left elbow, I applied ice to it throughout the night. It took on some gnarly colors and would swell back up if the ice wasn’t directly on it.
The next day, still no pain, but it looks horrible. On the phone, my wife insists that I go to an urgent-care facility, so off I go. 3 x-rays later, no breaks or fractures are visible. End of story… Not quite…
Wednesday [4days after the fall] I wake up to fly out to Chicago. My entire left forearm has taken on every sickly shade of blue black and Burgundy! By that evening, my hand is welling up as well.
Thursday I teach the Pantheon class all day and don’t think much about my arm. After all, IT NEVER HURT! But by Thursday night I have TWO purple fingers and a third on the way. I’m afraid to go to bed at 1am, so I head for the Cook County ER in Chicago. They draw blood to test for an infection and x-ray e again. No breaks or fractures. It is explained that I have a lot of blood pooling up beneath my skin and it's going to take some time to heal. They send me home.
Arriving at the hotel about 5:30, I clean up, take 2 Ibuprofen PM and fall asleep at 6am. The phone wakes me up at 8am. Somehow I left the ringer on AND was able to fumble around with it and answer it. It’s the same Doctor that saw me in ER. He says my platelet count is slightly elevated and he’s afraid I may actually have an infection. He tells me to get back to ER pronto! I ask if I can sleep it off first. He says NO.
I’m back at ER within the hour. More blood work, more x-rays, this time including chest, shoulder, arm, hand, and leg. Many hours later [sleeping on and off] the x-rays and blood work look fine. I’m back at the hotel. My wife is in a panic over it all and asks that I catch the next flight home to Indy. They’re all booked so I grab one the next day.
My 50th Drupal Camp included an awesome dinner for the out-of-towners, one full day of training, an amazing pre-camp dinner, 2 ER visits, and only a couple of hours at the actual camp. I stopped in to say HI and BYE. Oh well.. At least dinner that night was amazing Greek food with good friends.
Hand still swells up badly if not iced. I haven’t been able to use my left hand much for 36 hours. I can’t even make a fist.
The alien coloring of my left forearm is fading slowly. The goose egg by my elbow is as goose as it has ever been. TWELVE DAYS after the fall?!?!?
Doc says, wait it out. The body will heal itself over time.
Here’s to hoping that my next MADCamp is
WAY MORE BORING than my 50th DrupalCamp!
Drupal 8 coming (queue suspenseful music)!
Drupal has all the elements to build a custom content model that can mirror a DITA specialisation. The really exciting thing is that this data model can be built from the UI, without a single line of code. While there are considerable drawbacks to the usability of the resulting interface, the fact that this is a free and open source implementation means that those who have more time than money could use this implementation as a starting point to build a DITA CCMS that accommodates an arbitrary specialisation.
Drupal core announcements: Plan for upcoming D8 Accelerate sprint on DrupalCI (Modernizing Testbot Initiative)
The main aim of DrupalCI is to rebuild Drupal's current testbot infrastructure (which is currently powered by an aging Drupal 6 site) to industry-standard components such as Jenkins, Docker, and so on, architected to be generally useful outside of Drupal.org. See Nick Schuch's Architecting DrupalCI at DrupalCon Amsterdam blog post for more details.
The goal is to end the sprint with an "MVP" product on production hardware, with integration to Drupal.org, which can be used to demonstrate a full end-to-end D8 core ‘simpletest’ test run request from Drupal.org through to results appearing on the results server.
This is a particularly important initiative to help with, since it not only unblocks Drupal 8 from shipping, it also makes available awesome new testing tools for all Drupal.org projects!
Go Team! :)
“Your journey to heaven or hell or oblivion or reincarnation or whatever it is that death holds. … This is the Antechamber of the Mystery…”
Brent Weeks, The Way of Shadows
I suppose this will be the last entry in Aaron Winborn’s blog. This is his dad, Victor Winborn, filling in for him. Aaron entered his final sleep of this life on March 24, 2015. His transition was peaceful, and he was at peace with himself.
Aaron was the oldest of six natural siblings and two step-brothers. He was convinced, of course, that I was doing the father thing all wrong and that he could do far better on his own. He finally got to try to prove it when he gained two daughters of his own. Unfortunately, he was diagnosed with ALS shortly after the youngest was born. We will never know how successful he would have been with teenage daughters, but if the first few years of life with the girls are any indication, he would have been an outstanding father.
His mom, Lynn, no doubt carries the most memories of his infancy and childhood, though there is the interesting story or two that Aaron carried with him to the end. Such as the time his friend, Buddy (remember the My Buddy dolls?) became so dirty that his mom insisted Buddy needed a bath. Aaron was having a panic attack over Buddy drowning in the washer, so his mom invited him to sit in front of our front loader and watch his playmate float past the window in the door of the machine. Things were going great and Aaron was pretty sure his friend must be enjoying the swim, when Buddy suddenly exploded and his innards filled the machine with cotton-like blood. This was such a vivid evisceration that Aaron carried that vision, burned into his retina, to the end.
At twelve, we let him fly to Houston to live for a few months with his aunt and uncle, Diana and Les. He learned lots of useful things there, such as that you can’t just get your hair wet to prove to your more than astute aunt that you washed it. You actually have to put a little of the shampoo on your head so she can smell the strawberry scented perfume in it. His Uncle Les was one of his favorite people in the world. Les is the most captivating professor that either of us ever took a class from. In college, Les’ classes on Vietnam history, Film history, and Black history gave Aaron a yearning to teach.
Aaron had innumerable interests and was talented in most all of them. He left home shortly after high school in order to spend time with Paul Solomon (Fellowship of the Inner Light) at Paul’s retreat, Hearthfire. A year or so later, we learned that he had become personal assistant for Elizabeth Kubler Ross (On Death and Dying). Then we learned that he had moved to a commune in England, Mickleton House in Mickleton Village, Gloucestershire, UK. While there he worked in construction and kissed a girl for the first time.
When he finally returned home, Aaron and I were able to work together for several years. As we drove from job to job, we talked about books, poetry, religion, history, philosophy, technology, and science. We frequently didn’t agree on many topics, but we had eerily similar interests. That made it both fun and frustrating to carry on extended conversations. Of all my kids, Aaron was at the same time, both the most like me and the least like me. I often wondered how that worked. While he may have inherited a lot from his old dad, he always had a mind of his own.
One of those extended conversations had to do with both the purpose and destiny of the soul. I had homed in on the concept that a person was a soul, consisting of physical body and immaterial spirit. At the time, Aaron had no problem with that concept. Where we departed ways was in the purpose. He felt that we were in this physical realm in order to overcome physicality and to develop the spirit – at all odds with the physical pressures against the concept. My belief was that the spirit came to this world in order to learn to master the physical. The final take of our argument was that since he was the younger and had more years ahead of him than I did, I hoped that he would somehow find the real answer and share it with me. Now that Aaron has passed into or through the “Antechamber of the Mystery”, if he has any consciousness at this point, he knows the answer. Unfortunately, the veil separating us will prevent him from giving me the answer. I’ll have to go find it for myself.
The yearning to teach that his Uncle Les had instilled in him was finally fulfilled when he was offered the opportunity to teach at School in the Community in Carrboro, North Carolina. This is where he learned of his love for Web development. During this period, he attended a retreat at the Mid-Atlantic Buddhist Association outside St. Louis, and managed to fulfill a 30-day vow of silence. Any of you who knew Aaron while he had a voice, know that the experience must have been torture for him. Shortly after that, he met the love of his life, Gwen Pfeifer. They then moved to Willimantic, Connecticut. He taught at Sudbury School about 25 minutes away in Hampton. Hampton has the honor of being the only town in Connecticut without a stoplight. Their oldest daughter, Ashlin, was born while he worked there.
A few short years later, he was able to fulfill his next big dream of professional Web development. He became the first employee of Advomatic and ultimately also became an expert in the Drupal content management platform. After they moved to Harrisburg, Pennsylvania he wrote the book, Drupal Multimedia. In Harrisburg, Ashlin (and now Sabina) started attending The Circle School.
The Circle School community has been the core of the most amazing support group that I have ever heard of, much less experienced. For almost four years, they have offered food, help, work, laughs, and tears to the entire family. The co-captains in the Gwen & Aaron’s Helping Hands group have been relentless in their efforts to keep the little community vibrant, healthy, and ever-busy. Every time I have made the trip up to PA to visit, there have been multiple people dropping by to provide meals, take Ashlin to local events, help Aaron with his computer work, or just to offer hugs and hold hands with him.
I think the most important non-family member in their lives has been Michelle, who started out as a Mother’s Helper, and ended up being, besides Gwen, Aaron’s primary caregiver. She has become such an important part of the family, that little Sabina actually believes she is a family member. Michelle just finished her degree in psychology, though; and she and her husband will be moving closer to his work in Baltimore. She will always be a part of Ashlin’s and Sabina’s hearts, and I suspect will stay close to the girls for many years.
As many of you know, Aaron chose to take the path of coming back to this life in the same body that he inhabited here as Jeffrey Aaron Winborn. In other words, he chose to have his body frozen (cryonics) and hopes to have it restored when science has the knowhow to bring it back from the dead and to heal the affliction that ALS laid upon him.
While he was still at home, Aaron and I went through a period of reading many of Robert Heinlein’s books. One especially notable character of his was a curmudgeon named Lazarus Long. Lazarus was the main character of a number of books. I guess I didn’t realize at the time how much an impression this character made on Aaron. He ended up naming his first dog Lazarus Long Winborn. I just called him Grandpuppy. Aaron has been interested in cryonics for a long time, and had been planning on taking advantage of it even before he learned he had ALS. I have always wondered how much influence the Heinlein books had on this decision.
He leaves behind, his beautiful and loving partner, Gwen, and his two wonderful daughters, Ashlin and Sabina. Besides his core family, he leaves behind parents, siblings, aunts & uncles, cousins, a large local community of friends and caregivers, an extended family of coworkers, professional friends, activist friends, fellow ALS patients and survivors, and many more than I could ever know. There must be hundreds of people who have learned to love and honor him. And now comes the hardest moment a father can ever have when he has to say…
Goodbye, my Son. My friend.
The NYC Drupal Users Group is holding a Drupal Dev Day conference (#D3NYC15) on April 19th at John Jay College. People are pretty excited about this, and we're looking forward to some of the many ways we'll be able to give back to the community in doing so.
With D3NYC15, we're focusing on getting back to creating a grassroots community-building event right in our hometown. First and foremost, the event is in the 'unconference' format, which is an informal way of polling the attendees and creating meaningful sessions that are relevant to those that have shown up. We anticipate expert-lead sessions as well as BoFs.
As part of growing our community, we're planning a Drupal training session in the morning for those new community members. Alex Ross (bleen18) has graciously consented to volunteer his considerable talents to this effort.
In addition to this, we will also have a Drupal mentoring room ('drupal ladders') where a number of Drupalists in NYC have offered to help coach people on contrib work they are doing. Lastly, we're looking forward to our Drupal 8 sprint effort.
While the event is only a day long, it is our hope that D3NYC15 will serve as a launching point for both new and experienced users within the NYC community to help with the D8 issue queue. Even if our community just tackles one item off the queue that day, it will be a big win-- every little bit helps get Drupal 8 into final release.
If you're in the New York City area, or want to visit, join us for a day of coding and fun. Registration can be done at http://www.eventbrite.com/e/drupal-dev-day-nyc-2015-registration-16240282121, and more info about the camp can be found at www.drupalcamp.nyc. We are very much looking for sponsors to help defray the costs of the camp. The sponsorship packages are modestly priced at $500 and $1000, and in addition to great benefits you get the continued admiration of the NYC Drupal community as well as the knowledge that you are investing both in the NYC Drupal talent pool as well as the advancement of Drupal itself.
DrupalCamp London wrapped up on March 1st, making it the third large Drupal event in London since DrupalCon London in 2011. Over the past three years, the local events team has learned a great deal about planning a successful DrupalCamp in one of the largest and most diverse cities in the world.
“The tricky part,” said Ben Wilding (kazillian), one of the lead DrupalCamp London organizers, “is getting the core group who will commit to the camp. There are always lots of people who say they'll volunteer, but ultimately, you need a core group of people who will make it happen."
When planning a DrupalCamp, Wilding says there are seven main points to keep in mind.1. Find your core supporters
“In the years we’ve been planning DrupalCamp London, we've encountered two challenges: informing the local community enough, versus not giving them too much info. Things went slowly in year one since there was a revolving door problem as different people showed up to the planning meetings each month. Ultimately, it boiled down to the same five or six people who turned up at all the meetings, and they became the decision maker group.
“When it comes to planning a camp with your local community, open it up. Get as many local people involved as you can, but don’t be surprised if those numbers dwindle quite rapidly down to a core few. Then, closer to time, engage with the actual community who has volunteered to help out on the weekend-of. We actually had that as a ticket type— you could buy a free volunteer ticket. We probably had about thirty so, but we capped it. There are always dropouts at the last minute, so we always let a few new people come on board — but we always cap the volunteer tickets.2. Define the most important jobs
Wilding says that, when it comes to planning a DrupalCamp, having clearly defined jobs is critical to success.
“We had one person in charge of supporting the volunteers on site,” Wilding says. “That person is responsible for updating everyone on what’s going on and managing the volunteers on the day-of. Our volunteer coordinator does a walk around with the volunteers on the first day at the venue. Another helpful tool he uses is a spreadsheet where he maps volunteers to specific rooms and tasks.
“Especially with a job like managing volunteers, or handling the website, we’ve found that it’s best to make sure that one person owns it, and it’s not too difficult for them to manage."3. Plan ahead
“Give yourself more time than you think you’ll need — like months and months more time,” advises Wilding. For DrupalCamp London, the team stars more than ten months out on certain elements, such as the website, approaching the venue, and coordinating the team.
“Start anything you can as early as you can,” says Wilding. “The first thing, the hardest thing to get sorted out, is the venue — getting a space to commit for free. One you have that space, a lot of other things can fall into place if you’re being sensible about it and starting early."
“We get really involved with the whole team about four months out,” Wilding continues. “Our camp is always the last weekend in February, so it’s awkwardly placed where Christmas sits. We do things in October and November, the ball gets rolling, and then Christmas happens and we lose 5 weeks. When planning your camp, look out for anything holiday related in your calendar, like major public holidays. Be wary that you don’t sit back. Plan around it."4. Use personal networks
One way to get great things at low to no cost is through utilizing your community members’ personal networks.
“The more people you reach out to, the better, and the more people you’ve got looking through their personal contacts, the better,” says Wilding. "The time to manage speakers and sponsorships is a lot, so it’s best if possible if you can get someone to really own that. It’s something that’s easy to pass around a group of volunteers— you have to have one key person to own it."
Personal networks have helped the London team get keynote speakers, their venue, even their sponsor.
“We’ve been very fortunate that we get the venue in central London for three days straight. It usually costs hundreds of thousands of pounds, but we got it donated.
“It goes back with personal relationships that one of the organizers had with the university — he had done some free lectures promoting Drupal. It’s also about finding the right venue who benefits from the event, too. The computing department at the university we host our DrupalCamp at is very keen to find industry connections for students, so we always donate lots of tickets to their students so they can promote it internally.
“The way it stands now, the university students get the opportunity to meet the best of the best of the Drupal world, and the community benefits from the introduction of new users as well. Housing DrupalCamp London within the city university means they get the benefit of real world enterprise business and technology paired up with their students, which is ideal for them."5. Be Prepared for Complications
Wilding notes that organizing DrupalCamps can be complicated in unexpected places.
“This year, we had the BBC as a diamond sponsor,” said Wilding. “We had a contact on their end who was great. However, we had to put everything through their legal department and their marketing department. It was a good lesson for us in that, when you get to a certain level of sponsorship, the complications and the amount of work you have to put in to manage those relationships is incredible."
However, there are ways to address normal pain areas and cut down on the headaches for everyone.
“Registration can be pretty difficult,” said Wilding. “Printing names out on lanyards takes ages, and sometimes someone can’t find someone’s badge because God knows where it went, and there are long queues. We managed to make it much easier this year — we had ten volunteers by the doors in the morning for the first two days, and with 500 people coming in, we knew it could take a long time.
“So instead of printing badges, we just let people sign them on their own. For the actual registration process, we used an app called check me in. People RSVPd for the camp through EventBrite, and so when they walked in, they could check in with the door volunteers, all of whom had the app on their phone. After that, attendees could grab their lanyard, T-shirt, and tote bag. It was so much better than having 150 disgruntled in a queue at the start of the event."6. Enjoy your successes
Every DrupalCamp has great moments, and DrupalCamp London was no exception.
“We had Dr. Sue Black as the keynote for DrupalCamp on Saturday, and it was a bit of a different angle than what we usually have,” Wilding said. “We wanted to go beyond the normal Drupal talk for the keynote, so we had Dr. Black come speak about her experiences of promoting women’s engagement with technology — and also saving Bletchley park, too.
"One of Dr. Black's favorite projects that she does and does a lot of fundraising for is called Techmums (http://techmums.co/). She promotes technology amongst mothers in poorer, lower income households, and trains them to use it. One success story was how they trained a mum on how to put an attachment on an email. It was totally new to this woman who was running her own business. Before that, she was sending samples across town… she was sending her son at the end of the day across town, on a bus, with these samples for clients to look at. And this totally changed her life.
“After the talk, Dr/ Black had a huge queue of people who wanted to help with her various projects. It was so great that we were able to help our community share knowledge, and hopefully we benefitted the world a bit."7. Thank your supporters
“I’d like to issue another huge thanks to the volunteers and sponsors again because DrupalCamp wouldn’t happen without them,” said Wilding in conclusion.
“We’ve had a few people step back from organizing this year so we’re looking for new people to get involved and get engaged next year. If you’re interested in helping out, keep an eye on the Twitter account (@drupalcampldn and #dclondon). We’re taking a break for a few months — but keep an eye on Twitter, and the Drupal London User Group. We’ll make some noise in a couple months time, and get people together who want to chat about stepping in and helping out. We’re always looking for new people, and are happy to answer any questions people have."
In our March board meeting we took a look at the month of February and all the goodness that the Association and the community have managed to stir up. Spoiler alert: it's a lot. We've got lots of impressive changes on Drupal.org, some big community events to recap, and elections. If you missed the meeting, no worries! I'm going to recap some main points below, but you can always watch the recording, review the minutes, or check out the meeting materials (or all of the above, because overacheiver). Here's what we talked about:Operational Update
- We have three new staff starting at the Association. We'll have a new post on our blog shortly to introduce them all, but the long and short of it is this: Our DrupalCon team is now at 100% strength again, our marketing team can now get even more great Drupal content out into the universe, and adding a CFO to our team means that well be able to position the Association to better tell our financial story and project into the future.
- There is a brand (re)new newsletter going out - the Drupal Newsletter. Those of you who have been in the community for a while may remember that the last issue went out in 2008. We recently resuscitated the newsletter subscriptions functionality on your Drupal.org profile AND partnered with Bob Kepford to bring the Weekly Drop (plus a little extra Association goodness) to you once a week. Not subscribed? Go edit your D.O profile and you can subcribe right there!
- We are moving our dashboards into a publicly viewable/slick looking location. Up until now we've been sharing our dashboard data as tables in our monthly board update. It was better than not tracking numbers, but did not allow us to share context for our metrics and frankly, tables are really hard for mere humans to parse. We'll be moving all our metrics into SimpleKPI over time, but for now, take a look at the pretty that is the Drupal.org Dashboard.
We were thrilled to be in Bogota, Colombia for DrupalCon Latin America in February. Although we are really excited about what we accomplished, it did not happen without several very real bumps in the road. First, our attendance goal was 400, but we only hit 263, and one-third of those came in during the last two weeks. Managing the budget and logistics when attendance was so up in the air was a real challenge, but the DrupalCon team managed to ensure that we beat our budget expectations, so there was no negative financial impact for the Association. Most importantly, we learned a lot and saw some great outcomes:
- Many of the sessions offered live translation between English, Spanish, and Portugese. Additionally, the amazing Lingotek donated translations service so that more than 25 of the session recordings are also available in those languages. This experience with multiple languages will help us in future events, as well as with Drupal.org and other resources we help steward.
- We had amazing sprint participation - 38% of attendees stuck around on the final day and battled through a 2-hour internet outage (quite happily, I might add) to make their contributions to the project. Huge thanks to the sprint mentors who help make the day so successful.
- Overall, we think we saw a huge community lift from the event. We had several candidates from Latin America throw their hat in the ring for a board seat in the elections, and we had an increased participation in Global Training Days by Latin American shops. We hope that means that our Latin American community is more closely connected now and that this participation will carry forward and grow into the future.
A lot of the Working Groups work right now is actually rethinking how they work. There are three Drupal.org working groups - Infrastructure, Content, and Software. As the Drupal Association staff has grown and taken on real work, we've had to define how the staff and Working Groups collaborate as we go. the new wrinkle is that there are other Working Groups out there that fall under the Drupal (as opposed to Drupal.org) structure that overlap or relate to the D.O working groups.
For example, the Content Working Group is currently working on a content strategy to completment the user persona research we did and inform an iterative reimagination of Drupal.org. Turns out, a significant portion of that strategy relates to the Documentation Working Group. We didn't figure that out until well into the process, and missed the opportunity to get their feedback and incorporate their needs from the outset. It seems obvious in hindsight, but at the time, we were working with the Drupal.org Working Groups only, which was basically our known universe.
To remedy these kinds of issues, we plan to bring many of the Working Groups together in Los Angeles and are trying to map some process that will ensure that all the right players are brought in at the right time, So, charters are being adjusted, more communication is being planned. We know it's been rough at times, but are committed to finding a path forward that works for everyone.That's all she wrote...
Have questions, ideas, thoughts concerns? Leave 'em in the comments! I would sincerely love to hear from you. Just to know that one person read this post... these take forever to write! :)
- What does the job market look like in the Drupal space?
- Let’s talk about the pipeline idea.
- Experienced developers vs. Junior developers
- If you’re completely new what do you do?
- If you’re a hobbyist, what do you do?
- How do you get experience?
- What should job descriptions look like?
- Paul Booker
How should a small business, non-profit, charity, .. find a drupal developer when they need something doing?
- Damien McKenna
For someone who knows nothing about web development, what's their best path forward?
- Chris Hall
When do you know to ask for/be a Drupal Dev vs a PHP Dev with Drupal experience? Should/is there be a difference?
Wow. That was the first thing I said when I found out that I had been elected to the Drupal Association Board. The next thought was how much trust the Drupal community has put in me. I'm honored to be elected. Thank you. I also want to thank my fellow nominees, who all stepped forward with passion and great ideas. It was a joy to be on the "meet the candidate" discussions with them, and I would have been thrilled had one of them been elected in my place. I'm excited to get to work with the amazing Drupal Association team. I'm not going to lie; one of the reasons I applied for this position was to be able to work with these great people. It is an amazing opportunity for me, and I hope to add my part to pushing the Drupal project and community into the future. Woohoo!
I'm very aware that as one of the two At-large Directors on the board, I've been chosen to represent your voice; the voice of the Drupal community. Please feel free to reach out to me, here on my blog, through Twitter (add1sun), or my Drupal.org profile, to share your thoughts, ideas, and concerns.
Just a couple months ago the title of this post would have sounded crazy to me.
For the last several months I've been working on the CINC module as a way to make my work (and yours) with Drupal configuration better: faster, more predictable, more flexible, etc. Views is one of the most complex types of Drupal configuration, and I've been doing a great job of delaying what I saw as a daunting challenge of figuring out how Views should work with CINC. Even a simple Views export makes it clear that as you click around the Views UI, a lot is happening in the code, and it can be difficult to understand what exactly is going on. Here's an example Views export:$view = new view(); $view->name = 'random_instructor'; $view->description = ''; $view->tag = 'default'; $view->base_table = 'node'; $view->human_name = 'Random Instructor'; $view->core = 7; $view->api_version = '3.0'; $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */ /* Display: Master */ $handler = $view->new_display('default', 'Master', 'default'); $handler->display->display_options['use_more_always'] = FALSE; $handler->display->display_options['access']['type'] = 'none'; $handler->display->display_options['cache']['type'] = 'none'; $handler->display->display_options['query']['type'] = 'views_query'; $handler->display->display_options['exposed_form']['type'] = 'basic'; $handler->display->display_options['pager']['type'] = 'some'; $handler->display->display_options['pager']['options']['items_per_page'] = '1'; $handler->display->display_options['pager']['options']['offset'] = '0'; $handler->display->display_options['style_plugin'] = 'default'; $handler->display->display_options['row_plugin'] = 'node'; /* Sort criterion: Global: Random */ $handler->display->display_options['sorts']['random']['id'] = 'random'; $handler->display->display_options['sorts']['random']['table'] = 'views'; $handler->display->display_options['sorts']['random']['field'] = 'random'; /* Filter criterion: Content: Published */ $handler->display->display_options['filters']['status']['id'] = 'status'; $handler->display->display_options['filters']['status']['table'] = 'node'; $handler->display->display_options['filters']['status']['field'] = 'status'; $handler->display->display_options['filters']['status']['value'] = 1; $handler->display->display_options['filters']['status']['group'] = 1; /* Filter criterion: Content: Type */ $handler->display->display_options['filters']['type']['id'] = 'type'; $handler->display->display_options['filters']['type']['table'] = 'node'; $handler->display->display_options['filters']['type']['field'] = 'type'; $handler->display->display_options['filters']['type']['value'] = array( 'instructor' => 'instructor', ); /* Display: Block */ $handler = $view->new_display('block', 'Block', 'block');
That view shows one random instructor node in a block. And if you read the code for a few minutes, you can probably figure that out. But I don't know anyone who would attempt to write that code from scratch. So the only way to create a view like that is to click around in the Views UI. As impressive as the Views UI is, clicking a dozen times and finding the few options I care about among the dozens I don't is still an incredibly tedious way to say "show one random instructor node in a block." Ideally I would say that with code that looks more like show_one_random_instructor_node_in_a_block(); I should be able to say what I want and move on to thinking about more interesting problems, without slowing down on implementation details for simple needs.
As of the beta 2 release, CINC has Views integration, and it's wonderful. It's not quite as simple as show_one_random_instructor_node_in_a_block(), but here's how I'm currently creating that Views block:CINC::init('View')->machine_name('random_instructor') ->set('human_name', 'Random Instructor') ->set_row_style('node') ->set_view_mode('teaser') ->add_filter('published') ->add_node_type_filter('instructor') ->limit_items(1) ->add_sort('random') ->add_block_display() ->create();
So far that's only touching a small subset of what Views can do. I'll continue refining CINC Views toward this "say what you want and move on" ideal. But now that it's good enough that I'm personally no longer using Views UI at all, I wanted to invite you to the party.
Writing Views configuration from scratch is no longer daunting, and it will only get easier from here. So try it out and submit your own requests to make it even better.
I recently attended my first Drupal camp event.
It was great to experience what I’d always been told about Drupal, that it’s a large and open, but tightly-knit community.
Previously, I have had no contact with the Drupal community. My first observation as I entered was the wide demographic of people using Drupal. I didn't expect to see people of all ages, with a wide range of ability sets and backgrounds from all across the world attending.
Considering I'm fairly new to Drupal, I didn’t feel out of my depth or segregated from the more experienced members of the community. Far from it!
I came out of the event feeling that the community was more than just drupal.org. It felt like a community where everyone is happy to discuss problems and ideas publicly.
This openness is something I feel is unique to Drupal and its events. It was good to feel that there were a broad spectrum of people available to help you and share their wisdom.
I was able to see collective development in practice; that it’s the community who are the main driver for the CMS.
Unfortunately I was only able to attend on the Saturday, but on that day I wanted to squeeze as much information as I could from those who were more experienced in the CMS.
I made sure I packed my day full of the 45 minute sessions in order to aid my personal development.
Responsive theming and getting started with Foundation 5 - Presenter: Richard Monger
Coming from a primarily back-end development background, I thought it would be useful for me to understand some more of the the front end development tools and responsive theming techniques in Drupal.
Richard explained how having a framework setup would be useful, as it makes it simpler to customise your site.
I had never heard of ‘Foundation 5’ but I have used Bootstrap in previous projects and it had reduced the amount of time and effort required in theming. It appears that they are both fairly similar, however Richard explained that Foundation 5 does have a more lightweight system to Bootstrap.
Richard explained that Grunt can be used to process SASS files and is a way to speed up the work required to develop themes by automating the task of compiling CSS files from SASS files.
I’ve recently been exposed to this in our development team, so it was useful for me to see our practices being used in the wider community.
A colleague of mine at Deeson wrote a blog about how to implement a theme using Grunt, Bootstrap, Compass and SASS with drupal, which can be found here.
He also discussed how to implement responsive theming. You can use @media tags to specify how large you want a screen to be and within that function you insert your styling specifications for that screen size.
How to be a better dev by ignoring the code or consultancy skills 101 - Presenter: Ben Wilding (Cameron and Wilding)
I found this talk very useful as it taught me some interesting consultancy techniques.
It’s easy as a developer to disregard what actually happens before development, so it was certainly a valuable talk for developers like me,to understand how client relationships are initiated and maintained.
Ben showed us a number of valuable consultancy tools, such as questioning a client’s needs by always asking “why?”. He also delved in to to customers’ needs and the importance of identifying the root cause of what needs to be changed.
From a developers point of view, this is a very powerful tool. It helps us to understand a client’s actual needs and avoid questions such as “Can you just…” and “It should do…”. Further, questioning a clients ‘needs’ and ensuring clarity in their requirements is also important.
As a developer or a consultant, you should feel confident to ask them questions and feel confident in your ability to answer theirs.
He also told us that you have to choose the right project to fit the team, and pairing great teams with great clients creates great work.
Drupal.org in 2015: What's coming next? - Presenter: Oliver Davies
I attended this talk because I wanted to understand the role of the site in the community, its underlying foundations and also what it had planned for the future.
After some user feedback at Drupalcon Austin, drupal.org discovered that improvements needed to be made to the site.
Drupal.org want to become the home of the Drupal community, to provide learnable, efficient tools and to encourage people to develop themselves, their Drupal proficiency, and careers and to build human connections with the Drupal community.
Oliver described how they plan to meet these objectives. Drupal.org plan to:
- Make account creation and login much simpler.
- Improve the user profiles and organisation sites by adding more information about users.
- Look into a responsive redesign of the mobile website, to make both larger screens and mobile usability simpler.
- Improve the workflow to improve the level of skill in new contributors.
- Make improvements to the drupal.org search functionality, making it possible to gain information more easily and identify if a module is worth using on their site.
These improvements will allow us as developers to speed up development and help to get more involved in the Drupal community by making the site easier to use and improving the tools so that I can get the best out of drupal.
At the end of the presentation, a few people stated that they used Google and Github to search for and download modules and that this shouldn't be the case. They believed drupal.org should be the hub of Drupal. Oliver agreed and stated that this is one of the issues that they wanted to address.
Save time and use panels - Presenter: Alex Burrows
During this talk, Alex described how ‘Panels’ is implemented in a Drupal site, and gave us a demo to show how it is configured.
I didn’t realise how powerful Panels is and I was surprised at how much you can do with it. Panels is a layout manager similar to Context and Display Suite. All three can be used individually or they can all be used together to create a more complex site layout.
Alex explained how, in Panels, a client can use the in-place editor and move content around to fit their specifications. Variants can be used in order to set up a variation of the same page, and selection rules are used for displaying panels on specific pages.
You can also use Panelizer to set the configurations of panels node by node.
Improving the CMS user experience - Presenter: Paul Rowell
This talk was particularly useful for me because it gave me the opportunity to seek new modules, expanding my knowledge base and helping find a module that will serve a clients needs better in different situations.
Paul talked to us about how the user is the one who is often wrongly forgotten by developers, often left with tools that are too basic to manage their site.
Paul then discussed various modules to aid user experience such as Adminimal and Navbar for navigating around the site, giving a cleaner looking site than the default Drupal setup. He also discussed a few modules to aid content management, such as Workbench for displaying content overviews and Workbench moderation for revisioning.
Paul went on to talk about a few modules to be used for file management such as the Media module which enables users to upload once and then manage the files throughout the site.
Finally, Paul discussed options to aid UX on fields such as term reference tree for select lists, focal point for image cropping and Help text for adding helpful text to users about what text to add into a form.
At the end of this talk, people shared their own experiences with modules that they had found useful for aiding user experience. This gave me further insight into the Drupal community and proved the shared nature of its infrastructure.
My experience at Drupalcamp 2015 gave me a good understanding of the Drupal community and was testament to the fact that it is a highly dedicated community based on sharing both tools and knowledge. I believe that this is one of the most important factors of Drupal that makes it as popular and as exciting as it is, and is certainly one of its largest selling points. Drupal camp was highly beneficial to my development, and I was glad that I took the opportunity to see for myself what the Drupal community offered.
This year we have a variety of presentations for you at DrupalCon LA. These all come out of the hard work we're doing all year round on projects such as Tesla, Syfy, SNL, NBC, Bravo (to name a few), and also within the Drupal community.