Most Drupal shops depend on a transactional business model which requires hunting for new projects every month. Building Drupal applications is a great base to add more value to your business by selling support contracts, to grow your recurring revenue and deliver continuous value for your clients that have built their online business with Drupal. Using the transactional project business strategically to sell support contracts can help Drupal shops to grow fast and sustainable.
You will learn from some real examples of other Drupal shops how they grow recurring revenue with the project business and deliver support SLAs with 40% less personal costs.
Drupal Drupal shops SLA Drupal Planet Business
I agree with this post by Matthew Garrett.
I am quite convinced that most of the communities that I have known are vulnerable to people who are good manipulators of people.
It's not about physically forcing people to do things that they don't want to do. It's about pushing people, again and again, wearing them out, making them feel like, despite their actual needs and wants, saying "yes" to you is the only viable way out.
It can happen for sex, and it can happen for getting a patch merged. It can happen out of habit. It can happen for pretty much anything.
Consent culture was not part of my education, and it was something I've had to discover for myself. I assume that to be a common experience, and that pushing against boundaries does happen, even without malicious intentions, on a regular basis.
However, it is not ok.
Take insisting. It is not the same as persisting. Persisting is what I do when I advocate for change. Persisting is what I do when the first version of my code segfaults. Insisting is what I do when a person says "no" to me and I don't want to accept it.
Is it ok to insist that a friend, whom you think is sick, goes and gets help?
Is it ok to insist that a friend, whom you think is sexually repressed, pushes through their boundaries to explore their sexuality with you?
In both cases, one may say, or think, trust me, you'll thank me afterwards. In both cases, what if afterwards I have nothing to thank you for?
I see a common pattern in you'll thank me afterwards situations. It can be in good faith, it can be creepy, it can be abusive, and most of the time, what it is, is dangerously unclear to most of the people involved.
I think that in a community like Debian, at the level of personal interaction, Insisting is not ok.
I think that in a community like Debian, at the level of personal interaction, "You'll thank me afterwards" is not ok.
When I say it's not ok I mean that it should not happen. If it happens, people must be free to say "stop". If it doesn't stop, people must expect to be able to easily find support, understanding, and help to make it stop.
Just like when people upload untested packages.
Pushing against personal boundaries of people is not ok, and pushing against personal boundaries does happen. When you get involved in a new community, such as Debian, find out early where, if that happens, you can find support, understanding, and help to make it stop.
If you cannot find any, or if the only thing you can find is people who say "it never happens here", consider whether you really want to be in that community.
The first step towards the integration of Google Cloud Vision API to Drupal 8 was completed with the functions moved to services. I had posted the patch for the review by my mentors. They provided their suggestions on the patch, which I worked on, and every step resulting in a better and more beautiful code.
I would also like to share that this week, our team expanded from a team of three, to a team of four members. Yes! Eugene Ilyin, the original maintainer of the module Google Vision API has joined us to mentor me through the project.
Now coming to the progress of the project, the schedule says I need to configure the Google Cloud Vision API at taxonomy field level, so that the end users may use the taxonomy terms to get the desired response from the API. However, the module already used the configuration for Label Detection, and in a discussion with my mentors, it was figured out that the current configuration does not need any changes, as at present the behaviour is pretty clear and obvious to let the developers use it easily; rather we should work on implementing the runtime verification and storage of API key supplied by the end users.I was required to write and implement the code which would give error report if the API key was not saved prior to the use of the module, and also to write tests for verifying the configuration and ensuring the storage of the key.
I created issue for the new task, Implement a runtime requirement checking if API key is not set in the issue queues of the module, and started coding the requirement.I created patches and posted it in the issue to get it reviewed by my mentors. I brought the suggested changes in the code and finally have submitted the patch implementing the required functionalities.On the other hand, the previous issue Moving the common functions to services was also under the review process.I also worked on this issue, solving and implementing minor suggestions before it gets ready to be accepted and committed! And finally, my first patch in this project has been accepted and the changes has been reflected in the module.
At the end of these two weeks, I learnt about services and dependency injection which prove to be very useful concepts implemented in Drupal 8. I also had experiences of writing tests to check the runtime functionality of the module.
Pronovix: Brightcove Video Connect for Drupal 8 - Part 4: Including Videos & Playlists in Drupal content
This posts reads as a step-by-step guide for the following tasks:
- Add Brightcove Video field
- Browse Brightcove Videos using the Entity Browser module
- Upload Brightcove Videos inside Drupal content using the Inline Entity Form module
- Browse and upload Brightcove Videos inside Drupal content from the same field using the Entity Browser IEF submodule
- Browse and upload Brightcove Videos from CKEditor
Google summer of code (GSoC) seems to be a venue for students to get in touch with new technologies and be a part of many interesting open source organisations. Thanks to google for co- ordinating this initiative.
The last week was really a productive one for me in all aspects. I could manage time better to focus more towards my project. The climate here seems to have improved a lot. It’s now rainy here which has reduced the hot and humid climate to a large extent. My geographical location, Kerala, the southern part of India usually faces a fair climate.
If you are searching for a flashback of my previous GSoC’ 16 ventures, please have a look at these posts.
So, as you were expecting, now let’s talk about my activities in the second week of GSoC. The second week commenced with a bit more elaborative planning of the tasks to be carried out in the coming days. My main intention for the week was to discover more Drupal hooks and adapt it to my project code.
Wondering, what are hooks?
Hooks, in the simple definition, are PHP functions which have an inbuilt meaning given by Drupal to interact with modules. They also give us the freedom to extend the functionalities. The api.drupal.org gives wonderful explanations about the various hooks in action and their modifications that have come in the different Drupal versions.
Topics I have covered:
I would like to take this opportunity to share with you some of the concepts I could grasp from the previous week of GSoC.
- This performs the setup tasks when the module is installed.
- This hooks the database schema for the module. This is invoked once the module is enabled. This resides in the .install file of the module.
- This is for enhancing the module’s theme implementations.
- This hook defines the user permissions of the module; granting and restricting permission to the roles.
- Configuration API
- The Drupal variables are replaced by the configuration API. You need to define the properties and default values in the new format.
Hoping to learn more Drupal concepts in the days ahead. I will be posting the updates regularly. Stay tuned for more Drupal concepts.
But the skills that allow you to convince people that they shouldn't listen to a politician's arguments are the same skills that allow you to convince people that they shouldn't listen to someone you abused. The ability that allows you to argue that someone should change their mind about whether a given behaviour is of social benefit is the same ability that allows you to argue that someone should change their mind about whether they should sleep with you. The visibility that gives you the power to force people to take you seriously is the same visibility that makes people afraid to publicly criticise you.
We need these people, but we also need to be aware that their talents can be used to hurt as well as to help. We need to hold them to higher standards of scrutiny. We need to listen to stories about their behaviour, even if we don't want to believe them. And when there are reasons to believe those stories, we need to act on them. That means people need to feel safe in coming forward with their experiences, which means that nobody should have the power to damage them in reprisal. If you're not careful, allowing charismatic individuals to become the public face of your organisation gives them that power.
There's no reason to believe that someone is bad merely because they're charismatic, but this kind of role allows a charismatic abuser both a great deal of cover and a great deal of opportunity. Sometimes people are just too good to be true. Pretending otherwise doesn't benefit anybody but the abusers.
I wanted to post this as a 'save the date' to any other midwestern Drupalists—here in St. Louis, we'll be hosting our third annual DrupalCamp on September 10 and 11 (Saturday and Sunday) in St. Louis, MO. We'll have sessions on Saturday, and a community/sprint day Sunday, and just like last year, we'll record all the sessions and post them to the Drupal STL YouTube channel after the Camp.
We're still working on a few details (nailing down the location, getting things set up so we can accept session submissions and registrations, etc.), but if you're interested in coming, please head over to the official DrupalCamp STL 2016 website and sign up to be notified of further information!
Continuing from Evan’s blog post on building pages with Paragraphs and writing custom blocks of content as fields, I will walk you through how to create a custom field-formatter in Drupal 8 by example.Read more...
Trying to catch up with my blog posts about My Free Activities. This blog post will tell you about my free activities from January to May 2016.1. Personal projects
- db2twitter 0.6 released (Github stars appreciated ) – sending tweets with image
- feed2tweet 0.4 released (Github stars appreciated) – now only works with python 3, important bug fix
- retweet 0.8 released (Github stars appreciated ) – new younger_than and older_than options, support for new command-line option –l or –limit
- Push request to Lobste.rs project for support of the internationalization (i18n)
- Setting up a InfluxDB, Grafana stack to follow Journal du hacker trends
- The Journal du hacker database is now liberated, curated from sensitive information
That’s all folks! See you next month!
I took part in DrupalCamp Kyiv 2016. Let me share my impression.
I took part in Kiev Drupal Camps in 2010 and 2011, but after that, due to some personal reasons and job activity such as working as the Project Manager at the company, I wasn’t able to participate at the camps from 2012 to 2015.
To compare with my previous Drupal Camp experience this Camp looks like International not local Ukrainian event. There were several presentations in English. I think as soon as English presentation will be more than 50% the Camp became really international.
The most important conclusion that I have after this event: It does not make sense to start new project on Drupal 7. There were several excellent presentations that show a long set of Drupal 8 strong points. On my own view the best presentation did Olexiy Gorobets from FFW. His report significantly change my understanding of Drupal Cache Workflow. I hope that his report will be available online soon.
Also there is a trend towards consolidation Drupal IT business in several companies. They are FFW and Adyax.
More than 50% of the camp presentations were prepared by the people from that companies. Also as I can see more than 50% of the famous Ukrainian Drupal developers joined to that 2 companies.
I can saw only one weak point of Kiev Drupal Camp 2016. There were 4 streams of presentations, thus participants can have very limited access to that lectures, so one can see only 25% of presentations.
I hope that we will have access to all presentations soon, but now I can share my final slide set of my presentation The First Step to a Drupal 8 Landing Page Builder.Blog tags: Planet Drupal
The title kind of explains it all. Check out the screencast for a quick demo on how to do it.
Today we held our inaugural #TheGizraWay webinar. The web series is intended to showcase some of “The Gizra Way” principles - a set of best practices and methodologies, borrowed from the Open Source development world and applied to operations, workflow, and overall company culture.
For the first in the series, we chose the topic of price estimations because it provides a real - and perhaps radical - example of how transparent communication from the beginning about a project’s needs alongside its budget can turn the process on it’s head. In the video below Amitai Burstein discusses how a budget-and time-driven discovery process gets a project off on the right foot.
The next webinar - to take place in July 2016 - will be announced shortly. If you have any suggestions for topics or an idea that you would like to present in a future session let us know.
Read our Roadmap to understand how this work falls into priorities set by the Drupal Association with direction and collaboration from the Board and community.
The team is back from New Orleans and thankful for the time we had to spend with the community, attending sessions, presenting sessions of our own, and sprinting with you throughout the Con. As individuals, we’re all members of the community, and as an organization we're proud to hold the home of the community in trust.
Because of DrupalCon North America, May is always a busy month for the Association engineering team. We're preparing our sessions, ensuring that the testbots will be running smoothly for DrupalCon sprints, and polishing new features and ideas to share with the community. Here's what's new:Drupal.org updates Composer repositories moving towards stable
At the end of April, we launched the Alpha of our Composer façade, providing Composer repository endpoints on Drupal.org for Drupal 8 and Drupal 7. At DrupalCon New Orleans, we gave a presentation on the architecture of the Composer façade, and our plans for next steps. We also received some great feedback from users who helped us test the alpha release, and in May we've focused on moving Composer from an alpha release to a more stable environment suitable for use on production Drupal sites. We'll be following up soon with a more detailed blog post about Composer, when that more stable release is available.
If you want to help test the Composer service, you can learn more about Drupal.org's Composer repositories.New documentation content types
As previewed in our session at DrupalCon New Orleans, we're modernizing Drupal documentation with two new content types: Guides, and Documentation Pages. Documentation Pages will be organized in Guides, which will be curated by maintainers. We're also bringing a new visual design to documentation, re-organizing documentation by major version of Drupal, and developing a call-outs feature to help highlight key information like best practices or important changes in minor versions.
In May, we made an initial deployment of these content types to Drupal.org, though access is presently restricted to administrators while we work with the Documentation Working Group to sort out our initial migration plan. In June, we hope to deploy a migration tool, allowing users to convert existing documentation Book Pages and their children into the new Guides and Documentation Pages.CKEditor
We've also deployed CKEditor to Drupal.org. The WYSIWYG editor is now available on the Section, Page, and Post content types, as well as the incoming Documentation Guide and Documentation Page types. CKEditor brings a more robust editorial experience to Drupal.org, and as it gets wider use we’ll expand it to additional content types. We also want to allow time for the Dreditor maintainers to update to support the change. As a long-term goal, we hope that some of the features of Dreditor may be reimplemented as CKEditor plugins and directly available to every Drupal.org user without the use of a 3rd party browser extension.Sustaining support and maintenance DrupalCon Dublin full site launched
At DrupalCon New Orleans, we launched the full site for DrupalCon Dublin. The call for papers is open now, as is registration, so submit your sessions and purchase your tickets soon. DrupalCon New Orleans had the most sessions submissions ever for a DrupalCon, and the standard of quality was incredibly high. We're hoping that DrupalCon Dublin will see just as many wonderful submissions.DrupalCon Baltimore announced!
As is tradition, we also revealed the location of the next DrupalCon North America. In 2017, DrupalCon will be in Baltimore! At the closing session, the engineering team launched the splash page for the upcoming event, with travel information, hotels, and important dates.
And if your organization would like to sponsor DrupalCon Baltimore, you can find more information and our prospectus on the site as well.Infrastructure
We made several tweaks to Drupal.org infrastructure in May as well. We updated the Git Twisted daemon, which serves as the backend for the Drupal.org Git repositories and packaging process. We rebuilt our staging infrastructure at OSU/OSL. And finally, with the generous support of new Technology Supporting Partner OpsGenie, we updated our internal pager rotation for infrastructure alerts.
As always, we’d like to say thanks to all the volunteers who work with us, and to the Drupal Association Supporters, who made it possible for us to work on these projects.
We also want to say a special thanks to the departing leadership team at the Drupal Association: our former executive director, Holly Ross, who is moving on after building an incredible team and a great culture throughout the entire organization; Matt Tsugawa, our CFO; and Josh Mitchell, who has lead and mentored the engineering team.
Megan Sanicki, our former COO, is taking on the mantle of Executive Director and we're looking forward to where her leadership will take us
Drupal was at OSCON 2016 in Austin, TX, represented by a team of volunteers and Association staff members. Big thanks to Mika Aguilar, Stephanie El-Hajj, Michael Favia, Jeff Linwood, Michal Minecki, Emilie Nouveau, Cole Pacak, Jakob Perry, Ed Reel, Patricia Silva, and Jason Yee for helping out.
Thanks to the media partnership between DrupalCon and O'Reilly Media, we received a table in the exhibit hall to promote Drupal to the wider open source audience of OSCON. Here is how the days went, according to our volunteer crew:
It was great to meet so many Drupalistas in the Texas open source community and let them know about local meetups and the Texas Drupal Camp being planned. Everyone that came through was excited to talk about Drupal 8 and how they’re using it. And so many stickers were handed out!
— Emilie Nouveau (DyanneNova)
I’m excited to see OSCON come back to Austin next year. I attended the last two years in Portland and was happy to see it follow me to Austin. Lots of people stopped by the Drupal booth - many who had once used or installed Drupal, and then wandered away. They were surprised (and I think excited?) to hear about Drupal 8! It was a great opportunity to showcase Drupal 8’s new, modern features and functionality.
If I had to pick a favorite after-hours event, it’d have to be PayPal’s (old) Ghostbusters screening at the Alamo. You haven’t experienced the local scene until you’ve waved white and red glow sticks at a screen with a hundred fellow nerds to mime the Proton Blaster energy ray at the Alamo. And adult milkshakes.
— Stephanie El Hajj (stephelhajj)
The best part was meeting some new PHP developers right out of school who had learned development, but weren’t sure exactly what Drupal was, or how it could help them start their careers. This was a great opportunity to tell them about Drupal 8 and modern PHP web development using Symfony.
— Jeff Linwood (jefflinwood)
Keep up with events we are planning by following our newsletter.
Personal blog tags: OSCON
I put some packages together this weekend. It’s been a while since I’ve debuilt anything officially.
The plan is to build a binding to the libgnutls.so.30 API. The certtool CSR (REQ) generation interface does not allow me to create a CRL with “not critical” attributes set on purposes. Maybe if I do it a bit closer to the metal it will be easier…Tweet