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.
Everyone on the staff and Board of the Drupal Association would like to congratulate our newest board member:Addison Berry.
In addition to congratulating Addison, please join me in thanking the 23 other candidates who put themselves out there in service of Drupal and stood for election.
This was the fourth election we've held for At-Large board seats at the Drupal Association. This year we had two specific goals for the elections:
- Increase the diversity of the candidates - Although we only had one female candidate, we saw great success by other measures of diversity. 24 candidates came from 14 different countries - including South American and Asian countries.
- Increase voter turnout - We fielded 1,432 votes in this election. Our pool of eligible voters was 159,758, so that means our voter tunrout was .89%. This is still low, but a vast improvement over the last election, which saw a .36% turnout.
Our next steps will be to reach out to the candidates for their evaluation of the elections experience. We also want to hear from you. Please tell us about your experience with the elections process in the comments below so that we can include them in our planning for the 2016 elections.
Flickr photo: Kodak Views
If you know the file id, it is really simple,
How it works:
We need a source file object to move file to the new location and update the files database entry. Moving a file is performed by copying the file to the new location and then deleting the original. To get source file object, we can use file_load() function.
file_load($fid) - loads a single file object from the database
$fid - file id
return object representing the file, or FALSE if the file was not found.
After that, we can use file_move() function to move the file new location and delete the original file..file_move($file, 'public://new_file_name)
Parameter1 - Source File Object
Parameter2 - A string containing the destination that $source should be moved to. This must be a stream wrapper URI.
Parameter3 - Replace behaviour (Default value : FILE_EXISTS_RENAME)
For more details, check here.
Originally published on February 23rd, 2015 on NTEN.org. Republished with permission.
For the last 15 years or so, we’ve seen consistent growth in nonprofits’ appreciation for how open source tools can support their goals for online engagement. Rarely do we run across an RFP for a nonprofit website redesign that doesn’t specify either Drupal or WordPress as the preferred CMS platform. The immediate benefits of implementing an open source solution are pretty clear:
With open source tools, organizations avoid costly licensing fees.
Open source tools are generally easier to customize.
Open source tools often have stronger and more diverse vendor/support options.
Open source platforms are often better suited for integration with other tools and services.
The list goes on… And without going down a rabbit hole, I’ll simply throw out that the benefits of open source go well beyond content management use cases these days.
But the benefits of nonprofits supporting and contributing to these open source projects and communities are a little less obvious, and sometimes less immediate. While our customers generally appreciate the contributions we make to the larger community in solving their specific problems, we still often get asked the following in the sales cycle:
"So let me get this straight: First you want me to pay you to build my organization a website. Then you want me to pay you to give away everything you built for us to other organizations, many of whom we compete with for eyeballs and donations?"
This is a legitimate question! One of the additional benefits of using an open source solution is that you get a lot of functionality "for free." You can save budget over building entirely custom solutions with open source because they offer so much functionality out of the box. So, presumably, some of that saving could be lost if additional budget is spent on releasing code to the larger community.
There are many other arguments against open sourcing. Some organizations think that exposing the tools that underpin their website is a security risk. Others worry that if they open source their solutions, the larger community will change the direction of projects they support and rely upon. But most of the time, it comes down to that first argument:
"We know our organization benefits from open source, but we’re not in a position to give back financially or in terms of our time."
Again, this is an understandable concern, but one that can be mitigated pretty easily with proper planning, good project management, and sound and sustainable engineering practices.Debunking the Myths of Contributing to Open Source
Myth #1: "Open sourcing components of our website is a security risk."
Not really true. Presumably the concern here is that if a would-be hacker were to see the code that underlies parts of your website, they could exploit security holes in that code. While yes, that could happen, the chances are that working with a software developer who has a strong reputation for contributing to an open source project is pretty safe. More importantly, most strong open source communities, such as the Drupal community, have dedicated security teams and thousands of developers who actively review and report issues that could compromise the security of these contributions. In our experience, unreviewed code and code developed by engineers working in isolation are much more likely to present security risks. And on the off chance that someone in the community does report a security issue, more often than not, the reporter will work with you, for free, to come up with a security patch that fixes the issue.
Myth #2: "If we give away our code, we are giving away our organization’s competitive advantage."
As a software vendor that’s given away code that powers over 45,000 Drupal websites, we can say with confidence: there is no secret sauce. Trust me, all of our competitors use Drupal modules that we’ve released - and vice versa.
By leveraging open source tools, your organization can take advantage of being part of a larger community of practice. And frankly, if your organization is trying to do something new, something that’s not supported by such a community, giving away tools is a great way to build a community around your ideas.
At first, this contributed module was simply a developer tool. It didn’t have an interface allowing Drupal site builders to use it. It just provided an easier starting point for custom map development. However, this 20 hour starting point lowered the cost for us to build mapping solutions for other clients, who also pitched in a little extra development time here and there to the open source project. Within a few months, the Leaflet module gained enough momentum that other developers from other shops started giving back. Now the module is leveraged on over 5,700 websites and has been supported by code contributions from 37 Drupal developers.
What did that first nonprofit and the other handful of early adopters get for supporting the initial release? Within less than a year of initially contributing to this Drupal module, they opened the door to many tens of thousands of dollars worth of free enhancements to their website and mapping tools.
Did they lose their competitive advantage or the uniqueness of their implementation of these online maps? I think you know what I’m gonna say: No! In fact, the usefulness of their mapping interfaces improved dramatically as those of us with an interest in these tools collaborated and iterated on each other’s ideas and design patterns.
Myth #3: "Contributing to an open source project will take time and money away from solving our organization’s specific problems."
This perception may or may not be true, depending on some of the specifics of the problems your organization is trying to solve. More importantly, this depends upon the approach you use to contribute to an open source project. We’ve definitely seen organizations get buried in the weeds of trying to do things in an open source way. We’ve seen organizations contribute financially to open source projects on spec (on speculation that the project will succeed). This can present challenges. We’ve also seen vendors try to abstract too much of what they’re building for clients up front, and that can lead to problems as well.
Generally, our preferred approach is generally to solve our clients immediate problems first, and then abstract useful bits that can be reused by the community towards the end of the project. There are situations when the abstraction, or the open source contribution, needs to come first. But for the most part, we encourage our clients to solve their own problems first, and in so doing so provide real-life use cases for the solutions that they open source. Then, abstraction can happen later as a way of future-proofing their investment.
Myth #4: "If we open source our tools, we’ll lose control over the direction of the technologies in which we’ve invested."
Don’t worry, this isn’t true! In fact:
Contributing to an open source project is positively selfish.
By this I mean that by contributing to an open source project, your organization actually gets to have a stronger say in the direction of that project. Most open source communities are guided by those that just get up and do, rather than by committee or council.
Our team loves the fact that so many organizations leverage our Drupal modules to meet their own needs. It’s great showing up at nonprofit technology conferences and having folks come up to us to thank us for our contributions. But what’s even better is knowing that these projects have been guided by the direct business needs of our nonprofit clients.How to Go About Contributing to Open Source
There are a number of ways that your nonprofit organization can contribute to open source. In most of the examples above, we speak to financial contributions towards the release of open source code. Those are obviously great, but meaningful community contributions can start much smaller:
Participate in an open source community event. By engaging with other organizations with similar needs, you can help guide the conversation regarding how a platform like Drupal can support your organization’s needs. Events like Drupal Day at the NTC are a great place to start.
Host a code sprint or hackathon. Sometimes developers just need a space to hack on stuff. You’d be surprised at the meaningful that connections and support that can come from just coordinating a local hackathon. One of our clients, Feeding Texas, recently took this idea further and hosted a dedicated sprint on a hunger mapping project called SNAPshot Texas. As part of this sprint, four developers volunteered a weekend to helping Feeding Texas build a data visualization of Food Stamp data across the state. This effort built upon the work of Feeding America volunteers across the country and became a cornerstone of our redesign of FeedingTexas.org. Feeding Texas believes so strongly in the benefits they received from this work that they felt comfortable open sourcing their entire website on GitHub.
Of course, if your organization is considering a more direct contribution to an open source project, for example, by releasing a module as part of a website redesign, we have some advice for you as well:
First and foremost, solve your organization’s immediate problems first. As mentioned earlier in the article, the failure of many open source projects is that their sponsors have to handle too many use cases all at once. Rest assured that if you solve your organization’s problems, you’re likely to create something that’s useful to others. Not every contribution needs to solve every problem.
Know when to start with abstraction vs. when to end with abstraction. We have been involved in client-driven open source projects, such as the release of RedHen Raiser, a peer-to-peer fundraising platform, for which the open source contribution needed to be made first, before addressing our client’s specific requirements. In the case of RedHen Raiser, the Capital Area Food Bank of Washington, DC came to us with a need for a Drupal-based peer-to-peer fundraising solution. Learning that nothing like that existed, they were excited to help us get something started that they could then leverage. In this case, starting with abstraction made the most sense, given the technical complexities of releasing such a tool on Drupal. However, for the most part, the majority of open source contributions come from easy wins that are abstracted after the fact. Of course, there’s no hard and fast rule about this - it’s just something that you need to consider.
Celebrate your contributions and the development team! It might sound silly, but many software nerds take great pride in just knowing that the stuff they build is going to be seen by their peers. By offering to open source even just small components of your project, you are more likely to motivate your development partners. They will generally work harder and do better work, which again adds immediate value to your project.
In conclusion, I hope that this article helps you better understand that there’s a lot of value in contributing to open source. It doesn’t have to be that daunting of an effort and it doesn’t have to take you off task.
Before recently settling into the path of using Vagrant + Ansible for site development (speaking of Ansible: I absolutely love it and need to blog about some of my fun with that), I had been using Acquia Dev Desktop. Even now, I'll use it from time to time since it is easy to work with.planet drupaldrush
Out of the box, Drupal offers only a single type of validation for fields; required or not required. For most use cases this is fine, however, it can be a little difficult to define your own custom validation logic. What if you need to validate a field value and make sure it's unique?
The Field validation module allows you to define custom validation rules using Drupal's administration interface. The module ships with a lot of its own validators: "Plain text", "Specific value(s)" and much more.
If none of the validators meet your requirement, you can write your own by implementing a validator plugin. Because validators are Ctools plugin, they are easy to maintain as each one gets its own file.
In this tutorial, we'll use Field validation to validate a field value and make sure it's unique.