
Upgrade Your Drupal Skills
We trained 1,000+ Drupal Developers over the last decade.
See Advanced Courses NAH, I know EnoughGSoC students have officially been coding since 23 May (about 2.5 weeks) and are almost half-way to the mid-summer evaluation (20 - 27 June). Students who haven't completed some meaningful work before that deadline don't receive payment and in such a large program, there is no possibility to give students extensions or let them try and catch up later.
Every project and every student are different, some are still getting to know their environment while others have already done enough to pass the mid-summer evaluation.
I'd like to share a few tips to help students ensure they don't inadvertently fail the mid-summer evaluation
Kill electronic distractions
As a developer of real-time communications projects, many people will find it ironic or hypocritical that this is at the top of my list.
Switch off the mobile phone or put it in silent mode so it doesn't even vibrate. Research has suggested that physically turning it off and putting it out of sight has significant benefits. Disabling the voicemail service can be an effective way of making sure no time is lost listening to a bunch of messages later. Some people may grumble at first but if they respect you, they'll get into the habit of emailing you and waiting for you to respond when you are not working.
Get out a piece of paper and make a list of all the desktop notifications on your computer, whether they are from incoming emails, social media, automatic updates, security alerts or whatever else. Then figure out how to disable them all one-by-one.
Use email to schedule fixed times for meetings with mentors. Some teams/projects also have fixed daily or weekly times for IRC chat. For a development project like GSoC, it is not necessary or productive to be constantly on call for 3 straight months.
Commit every day
Habits are a powerful thing. Successful students have a habit of making at least one commit every day. The "C" in GSoC is for Code and commits are a good way to prove that coding is taking place.
GSoC is not a job, it is like a freelance project. There is no safety-net for students who get sick or have an accident and mentors are not bosses, each student is expected to be their own boss. Although Google has started recommending students work full time, 40 hours per week, it is unlikely any mentors have any way to validate these hours. Mentors can look for a commit log, however, and simply won't be able to pass a student if there isn't code.
There may be one day per week where a student writes a blog or investigates a particularly difficult bug and puts a detailed report in the bug tracker but by the time we reach the second or third week of GSoC, most students are making at least one commit in 3 days out of every 5.
Consider working away from home/family/friends
Can you work without anybody interrupting you for at least five or six hours every day?
Do you feel pressure to help with housework, cooking, siblings or other relatives? Even if there is no pressure to do these things, do you find yourself wandering away from the computer to deal with them anyway?
Do family, friends or housemates engage in social activities, games or other things in close proximity to where you work?
All these things can make a difference between passing and failing.
Maybe these things were tolerable during high school or university. GSoC, however, is a stepping stone into professional life and that means making a conscious decision to shut those things out and focus. Some students have the ability to manage these distractions well, but it is not for everybody. Think about how leading sports stars or musicians find a time and space to be "in the zone" when training or rehearsing, this is where great developers need to be too.
Some students find the right space in a public library or campus computer lab. Some students have been working in hacker spaces or at empty desks in local IT companies. These environments can also provide great networking opportunities.
Managing another summer job concurrently with GSoC
It is no secret that some GSoC students have another job as well. Sometimes the mentor is aware of it, sometimes it has not been disclosed.
The fact is, some students have passed GSoC while doing a summer job or internship concurrently but some have also failed badly in both GSoC and their summer job. Choosing one or the other is the best way to succeed, get the best results and maximize the quality of learning and community interaction. For students in this situation, now it is not too late to make the decision to withdraw from GSoC or the other job.
If doing a summer job concurrently with GSoC is unavoidable, the chance of success can be greatly increased by doing the GSoC work in the mornings, before starting the other job. Some students have found that they actually finish more quickly and produce better work when GSoC is constrained to a period of 4 or 5 hours each morning and their other job is only in the afternoon. On the other hand, if a student doesn't have the motivation or energy to get up and work on GSoC before the other job then this is a strong sign that it is better to withdraw from GSoC now.
On a previous post I explained how we are using BigPipe in Drupal 7 (Cheap Pipe (sort of BigPipe) in Drupal 7). Besides all the known benefits of big pipe, there is a less known side effect that might help you fight spam.
Language EnglishMore articles...
- Drupal 8 Wincache Integration
- Calling .Net Framework and .Net Assemblies from PHP
- Drupal 8 performance: enabling the classloader cache
- Cheap Pipe (sort of BigPipe) in Drupal 7
- Node Comment and Forum working together to boost user participation
- Using LINQ (Language Integrated Queries) in Drupal or how to write queries x5 faster
- Bypassing Form Validations and Required Fields in Drupal: the BFV module.
- Distinct options in a views exposed filter: The Views Selective Filters Module
- Drupal 8 performance: the Supercache module
- Adding native JSON storage support in Drupal 7 or how to mix RDBM with NoSQL
The basics
If you run an online business you should take analytics very seriously. Improving sales, conversions and any other objectives your web application has is an iterative process that needs to be based on measurable and meaningful indicators.
Language EnglishMore articles...
- Setting up Code Syntax Higlighting with Drupal
- Deploying changing module dependencies with Drupal
- Adding products with attributes to cart programmatically using Ubercart
- Drupal 7 update jQuery.once: jquery.once polyfill
- Remote debugging production PHP applications with XDebug
- Bypassing Form Validations and Required Fields in Drupal: the BFV module.
- Installing Pim Core on Windows and IIS
- Adding native JSON storage support in Drupal 7 or how to mix RDBM with NoSQL
- Node Comment and Forum working together to boost user participation
- Using Heatmaps to boost conversions: Heatmap.me Drupal integration
[Check out or free Installing Drupal 8 on PHP7 tutorial]
Drupal 8 was released with full PHP7 support:
Language EnglishMore articles...
- When PHP crashes: how to collect meaningful information and what to do with it
- Drupal 8 Couchbase Integration
- Distinct options in a views exposed filter: The Views Selective Filters Module
- Only update changed fields or properties for an entity in Drupal
- ASP.Net session state scaling and performance issues
- Importing Excel data with PHP, OpenXML and SpreadsheetLight: a Drupal example
- Drupal 7 update jQuery.once: jquery.once polyfill
- Adding native JSON storage support in Drupal 7 or how to mix RDBM with NoSQL
- Using Heatmaps to boost conversions: Heatmap.me Drupal integration
- Fixing Drupal site locks during menu rebuild
This post is on how we implemented a simple (yet effective) BigPipe "like" rendering strategy for Drupal 7.
Why is big pipe so important?
More articles...
- Fixing Drupal site locks during menu rebuild
- Installing Pim Core on Windows and IIS
- Decent PDF generation in Drupal
- Build GIT on Windows from Sources
- Continuous integration and testing with Drupal on AppVeyor
- Adding native JSON storage support in Drupal 7 or how to mix RDBM with NoSQL
- Deploying changing module dependencies with Drupal
- Benchmarking Drupal 7 on PHP 7-dev
- Git shell on Windows reports “sh.exe has stopped working (APPCRASH)”
- Best Drupal Hosting - Choosing the right one
As of this writing the only site building readily available module is the PLUpload file widget.
This module depends on the PLUpload form element provided by the Plupload integration module, that is a more developer oriented module.
With the Plupload widget/integration you can:
Language EnglishMore articles...
- How to use NetPhp
- PDF Generation in PHP
- Deploying Drupal Like a Pro
- Adding products with attributes to cart programmatically using Ubercart
- Fixing Drupal site locks during menu rebuild
- ASP.Net session state scaling and performance issues
- Using LINQ (Language Integrated Queries) in Drupal or how to write queries x5 faster
- Getting #2,000 requests per second without varnish
- Drupal 8 Couchbase Integration
- Node Comment and Forum working together to boost user participation
The Supercache module is the result of an attempt to improve Drupal 8 efficiency when dealing with cache tag management and other design issues with several caching components that make it a pain to deal with Drupal 8 based applications that change a lot.
An out of the box Drupal 8 install will issue about 2,100 database statements for a simple task such as performing a log in and creating two articles.
Language EnglishMore articles...
- When PHP crashes: how to collect meaningful information and what to do with it
- Couchbase 4.5 released: now x6 faster than MongoDB
- Using Heatmaps to boost conversions: Heatmap.me Drupal integration
- Calling .Net Framework and .Net Assemblies from PHP
- PHP COM class: consuming .Net from PHP
- Bypassing Form Validations and Required Fields in Drupal: the BFV module.
- Database Transactions in Drupal
- Getting #2,000 requests per second without varnish
- Hiding the fact that your site runs Drupal
- Drupal 7 update jQuery.once: jquery.once polyfill
Was there a friend or family member who you could only communicate with using a proprietary, privacy-eroding solution like Skype or Facebook this Christmas?
Would you like to be only using completely free and open solutions to communicate with those people next Christmas?
Developers
Even if you are not developing communications software, could the software you maintain make it easier for people to use "sip:" and "xmpp:" links to launch other applications? Would this approach make your own software more convenient at the same time? If your software already processes email addresses or telephone numbers in any way, you could do this.
If you are a web developer, could you make WebRTC part of your product? If you already have some kind of messaging or chat facility in your website, WebRTC is the next logical step.
If you are involved with the Debian or Fedora projects, please give rtc.debian.org and FedRTC.org a go and share your feedback.
If you are involved with other free software communities, please come to the Free-RTC mailing list and ask how you can run something similar.
Everybody can help
Do you know any students who could work on RTC under Google Summer of Code, Outreachy or any other student projects? We are particularly keen on students with previous experience of Git and at least one of Java, C++ or Python. If you have contacts in any universities who can refer talented students, that can also help a lot. Please encourage them to contact me directly.
In your workplace or any other organization where you participate, ask your system administrator or developers if they are planning to support SIP, XMPP and WebRTC. Refer them to the RTC Quick Start Guide. If your company web site is built with the Drupal CMS, refer them to the DruCall module, it can be installed by most webmasters without any coding.
If you are using Debian or Ubuntu in your personal computer or office and trying to get best results with the RTC and VoIP packages on those platforms, please feel free to join the new debian-rtc mailing list to discuss your experiences and get advice on which packages to use.
Everybody is welcome to ask questions and share their experiences on the Free-RTC mailing list.
Please also come and talk to us at FOSDEM 2016, where RTC is in the main track again. FOSDEM is on 30-31 January 2016 in Brussels, attendance is free and no registration is necessary.
This mission can be achieved with lots of people making small contributions along the way.
FOSDEM is nearly here and Real-Time Communications is back with a bang. Whether you are keen on finding the perfect privacy solution, innovative new features or just improving the efficiency of existing telephony, you will find plenty of opportunities at FOSDEM.
Main track
Saturday, 30 January, 17:00 Dave Neary presents How to run a telco on free software. This session is of interest to anybody building or running a telco-like service or any system administrator keen to look at a practical application of cloud computing with OpenStack.
Sunday, 31 January, 10:00 is my own presentation on Free Communications with Free Software. This session looks at the state of free communications, especially open standards like SIP, XMPP and WebRTC and practical solutions like DruCall (for Drupal), Lumicall (for Android) and much more.
Sunday, 31 January, 11:00 Guillaume Roguez and Adrien Béraud from Savoir-faire Linux present Building a peer-to-peer network for Real-Time Communication. They explain how their Ring solution, based on OpenDHT, can provide a true peer-to-peer solution.
and much, much more....
- XMPP Summit 19 is on January 28 and 29, the Thursday and Friday before FOSDEM as part of the FOSDEM Fringe.
- The FOSDEM Beer Night on Friday, 29 January provides a unique opportunity for Real-Time Communication without software
- The Real-Time Lounge will operate in the K building over both days of FOSDEM, come and meet the developers of your favourite RTC projects
- The Real-Time dev-room is the successor of the previous XMPP and Telephony dev-rooms. The Real-Time dev-room is in K.3.401 and the schedule is discussed here.
Volunteers and sponsors still needed
Please come and join the FreeRTC mailing list to find out more about ways to participate, the Saturday night dinner and other opportunities.
The FOSDEM team is still fundraising. If your company derives benefit from free software and events like FOSDEM, please see the sponsorship pages.
WebRTC continues to gather momentum around the world. Over the next week, Paris will host a TADHack event on WebRTC (12-13 December) followed by Europe's most well known meeting of the WebRTC community, the annual WebRTC Conference and Expo, 16-18 December.
2015 has been a busy year for WebRTC developers, in the browser, on the server-side and even in documentation, with the online publication of The RTC Quick Start Guide. These efforts have all come together to create a stable foundation for many implementations in 2016.
Demo
The JSCommunicator demo video shows just how convenient WebRTC can be, looking at the first customer-facing WebRTC deployment on Wall Street, a project I put together back in 2014:
(click here to see it on the JSCommunicator page or here to download it</a>)This solution was implemented entirely with free, open source software integrated with a traditional corporate PBX. The project involved significant innovation to bring together a new technology like WebRTC with a very established corporate telephony infrastructure. For example, the solution makes use of the reSIProcate Python scripting to add the Avaya UUI headers to the SIP signaling, so it can integrate seamlessly with all existing Avaya customizations and desktop CRM software.
Is this something you can imagine on your organization's web site or as part of your web-based product or service?
DruCall module for Drupal - WebRTC without coding
If you run a Drupal CMS or if you would like to, the DruCall module provides a very quick way to get started with WebRTC.
On a Debian or Ubuntu server, you can automatically deploy the entire Drupal stack, Apache, MySQL and all module dependencies with
$ sudo apt-get install -t jessie-backports drupal7-mod-drucall
JSCommunicator, the generic SIP phone for web pages
If you don't want to do any JavaScript development, JSCommunicator may be the way to go.
JSCommunicator is a completely generic solution that can be completely re-branded just by tweaking the HTML and CSS. All phone features can be enabled and disabled using the configuration file.
WebRTC plugins for CRM solutions
As part of Google Summer of Code 2014, Juliana Louback created a WebRTC plugin for the xTuple enterprise CRM and ERP suite.
The source code of the DruCall and xTuple plugins provide an excellent point of reference for developing similar plugins for other web applications. Both of them are based on JSCommunicator which is designed to embed easily into any existing HTML page or templating system.
Get involved
To find out more and discuss RTC using free software and open standards, please join us on the Free-RTC mailing list.

Technical debt occurs when you take a shortcut, thinking "this will do for now. I'll sort it out properly later." And then you keep putting off "later", and probably forget about the issue ... until it comes back to bite you.
It's all those tiny things like a misspelled variable, whose misspelling has to be replicated evermore, or making a configuration change on a live site without capturing it in code, so that the live site is now different to the development one.
It's going [copy]-[paste] to a chunk of code when you really should be abstracting it into its own function.
It's neglecting coding standards. Even 'just this once', making your code harder to read and understand.
It's adding a */
This gonna be short and sweet.
If you need/want the Drupal Update Manager to work through SSH then you need to install the “libssh2-php” php package on your Ubuntu server. You know the Update Manager; it’s the admin interface when you install a module or theme, or more importantly if you are doing system-wide updates.
If you do not have the “libssh2-php” package installed then the only option you will have is FTP.
Unless you have a very specific reason, you do not want to run an FTP server on your Ubuntu server. Especially, when you have alternatives like SFTP and SCP for transferring files and they are based on SSH.
Now to enable the SSH option on the Update Manager page, you need to install the “libssh2-php” package and reload your apache server.
apt-get install libssh2-php service apache2 reload
Now you have the SSH option on the same page.
Well, that being said, using Drush would be a better choice for these operations but there might be times where you need this.
Share this:
Loading...
Related

When I got my first VPS (from Linode) like 4 years ago, for heavy Drupal use, I read a lot of guides about setting up a LAMP stack on Ubuntu. At first most of those guides I read and followed were Drupal specific but later on I read a lot of non-drupal, LAMP stack related stuff as well.
In addition to the guides I read (and still reading), now I have 4 years of experience and knowledge that I learned by trial & error. Not to mention that I have a long System Admin (Windows only) and Database Admin (mostly Oracle) past. I still wouldn’t call myself a full-blown Linux System Admin but I believe I have come quite a long way since then.
Now I am thinking about the guides and wondering why none of the ones I read does not tell people to delete the default site configuration that comes enabled upon Apache installation. As if this is not enough, almost all of them relies on making changes on that default site config (Drupal or not).
99 times out of 100, you do not want/need a default site running on your server; which will service to any request that finds your server via IP or DNS; unless the request belongs to a website that you specifically configured. And I am sure you don’t want your apache to service a request, let’s say, http://imap.example.com unless you specifically configured a site for imap.example.com.
One of the first things I do is to delete that default website.
I can either delete the symlink…
cd /etc/apache2/sites-enabled/ rm 000-default.conf service apache2 reload
or you can do it by disabling the site with “a2dissite” command. Some might say that this is the proper way to do it but actually they do the same thing; removes the symlink.
a2dissite 000-default.conf service apache2 reload
As you have noticed that I did not actually delete the default site configuration file which resides in “/etc/apache2/sites-available/” I have only disabled that site. Who knows, I might need that file in the future (for reference purposes most likely).
Now the question pops in mind; the guides you follow tells you to make a change in that default site config file. Of course the changes will not have any effect since the default site is disabled. As for Drupal, it will ask you to change “AllowOverride None” to “AllowOverride All” in the below shown block.
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
This is how you do it. Open your “apache2.conf” file, where your real defaults are set. Find the same block and make the same change there.
cd /etc/apache2/ vi apache2.conf ## Make the changes ## service apache2 reload
This is on Ubuntu 14.04 …
Share this:
Loading...
Related

If you have upgraded (or planning an upgrade) your Drupal 7 platform to Ubuntu 14.04 then you most likely know about the “install creates 31 tables then stops” and “Installation failure when opcode cache is enabled” issues. Which is caused by a problem between the Drupal code and OPcache.
A few words about the OPcache. Ubuntu 14.04 comes with php 5.5, which has Zend OPcache built-in. If you have already tried to install APC extension for your php setup, you failed. And if you googled about this failure then you heard that the APC is included in php5.5. Well, you can say that. Actually, the type of these caching solutions are called “OpCode Cache“. “APC” is one of them. “Zend OPcache” is another one; and this Zend OPcache (or OPcache for short) is built into php 5.5, not APC.
The Drupal problem has been fixed for D8 on this issue but no patch is available for D7 yet.
The workaround is to disable the OPcache, which is enabled by default. It is a setting in php.ini file.
opcache.enable=0
The question has been raised if disabling the OPcache before installation and enabling it right after would be good enough. While I don’t have a solid answer for that, it should be good enough to keep it disabled during installation and upgrades. I permanately turned it off on my test site. Maybe I should turn it on again and do some tests..
Another question I have seen but not answered was, if we can disable the OPcache per site basis. Like disabling it for a D7 sites and enabling it for others.
Yes, we can do that. As the title of this article suggests, we can disable OPcache per site basis but we cannot enable it whenever we want it; it should be enabled by default. If you have disabled it through php.ini file, then you need to revert it back.
Placing below line in your “settings.php” file will disable it.
ini_set('opcache.enable', '0');
However, I like the “.htaccess” method much better.
php_flag opcache.enable Off
Remember that your apache config should have “AllowOverride All” in order to make the .htaccess method work; which is also a requirement for installing & running Drupal websites.
Share this:
Loading...
Related
The command line: most programmers love its power; most web users fear its (alleged) complexities. But for those willing to dive in, the reward is great. Using Drush on Drupal can save you several hours a week just on website maintenance tasks alone. Here is a short list to get you started:
1. Download and Install Multiple Modules Simultaneously
Installing modules on drupal is easy. You just have to
- Go to Drupal.org
- Search for the module's page
- Download the module's zip file
- Unzip
- Move to sites/all/modules
- Open up your web browser
- Go to the modules page
- Click off the checkbox for the module
- Save your changes
That's 9 steps per module. And if you have 30+ modules to install, that can take up to several hours if you're not nimble with your keyboard and mouse. With drush, you can do it in 2 lines:
Download command:
drush dl addressfield admin_menu advanced_help amazon_s3 awssdk backup_migrate boxes calendar ckeditor ckeditor_swf coder commerce commerce_features commerce_feeds commerce_file commerce_product_key contemplate context ctools custom date devel devel_themer drupalforfirebug echo email emogrifier entity facebook_pull fb_social features feeds feeds_querypath_parser feeds_tamper feeds_xpathparser field_group filter_transliteration flowplayer getid3 globalredirect gmap google_analytics grammar_parser hacked html5_tools htmlmail i18n imce include job_scheduler jplayer jquery_update kfs libraries link location mailchimp mailmime mailsystem md5check media media_amazon media_browser_plus media_flickr media_youtube mediaelement menu_block migrate mimemail nice_menus omega_tools panels pathauto pathologic plupload quicktabs references relation rolereference rules search_api service_links services sexybookmarks skinr styles token transliteration viewfield views views_accordion views_bulk_operations views_pdf workbench workbench_access workbench_files workbench_media workbench_moderation wysiwyg xmlsitemap
Install command:
drush install addressfield admin_menu advanced_help amazon_s3 awssdk backup_migrate boxes calendar ckeditor ckeditor_swf coder commerce commerce_features commerce_feeds commerce_file commerce_product_key contemplate context ctools custom date devel devel_themer drupalforfirebug echo email emogrifier entity facebook_pull fb_social features feeds feeds_querypath_parser feeds_tamper feeds_xpathparser field_group filter_transliteration flowplayer getid3 globalredirect gmap google_analytics grammar_parser hacked html5_tools htmlmail i18n imce include job_scheduler jplayer jquery_update kfs libraries link location mailchimp mailmime mailsystem md5check media media_amazon media_browser_plus media_flickr media_youtube mediaelement menu_block migrate mimemail nice_menus omega_tools panels pathauto pathologic plupload quicktabs references relation rolereference rules search_api service_links services sexybookmarks skinr styles token transliteration viewfield views views_accordion views_bulk_operations views_pdf workbench workbench_access workbench_files workbench_media workbench_moderation wysiwyg xmlsitemap
The above commands may look ominous, but it's just drush 'command' and then a list of modules. Drush takes care of the rest.
2. Automatic Module Updates
Updating modules can be a pain. You have to check for avaialble updates, then repeat the process above in #1. Or, you can run: "drush up." This will tell drush to:
- check which modules are installed on the current site
- check to see if there are updates available
- notify you what modules are out of date
- ask you if you'd like to proceed
- download all the modules and place them into the proper location
- run update.php for you
This function alone saves me 2 hours a week.
3. Quickly Clear All Caching
You made a change to your site, but it's just not showing up! It might be a cache thing. Views, blocks, css, javascript: many components of Drupal are cached for performance. But this can make development difficult because you need to keep navigating to the admin areas to clear the system cache and flush the changes.
OR, you can run "drush cc all" to clear all the caching systems at the same time. This is super convenient.
4. Easy Backups
If you're developing on the bleeding edge (Drupal 7 with only dev versions of all of your modules, possibly with patches), you've probably experienced a corrupt database that simply could not be recovered. No fun. The easiest way to protect yourself is quick backups. But just like clearing your cache, you don't want to have to leave the page you're on and come back. Simply run "drush bam-backup" and a database copy will be generated and downloaded into the manual backups directory. For bleeding edge projects, I use this command compulsively because it's saved me so many times.
5. Control multiple sites
If you run more than one site (or a dozen sites), it can be tedious to manually update the modules at the same time. But drush allows you to create scripts and installation profiles, so you can quickly run the same commands on all of them. "drush @site1 up; drush @site2 up; drush @site3 up" would run the module update commands on 3 different sites, one right after another, without having to navigate your terminal to each site in between. This gives you a command center feel and allows you to connect to each site from one location, saving lots of time and focus for the bigger tasks at hand.
I hope you enjoyed this. If you have any questions or things to add, please leave a comment below. Are you using drush? If not, what's holding you back?
PS. If you're already a fan, you can buy the I heart drush here.
Pages
- « first
- ‹ previous
- 1
- 2
- 3
- 4
About Drupal Sun
Drupal Sun is an Evolving Web project. It allows you to:
- Do full-text search on all the articles in Drupal Planet (thanks to Apache Solr)
- Facet based on tags, author, or feed
- Flip through articles quickly (with j/k or arrow keys) to find what you're interested in
- View the entire article text inline, or in the context of the site where it was created
See the blog post at Evolving Web



