Planet Drupal

Syndicate content - aggregated feeds in category Planet Drupal
Updated: 2 min 45 sec ago

David Norman: Cinder block development

Thu, 02/01/2014 - 4:19pm

Classic Graphics bet big on Drupal. Our largest customers get their orders on time because we have built systems for them based on Drupal. Even though we're up to 300 employees now, with layers of management, the non-technical management still is aware that we use Drupal for custom development in part because Bryan and I heavily evangelized Drupal within Classic.

Thinking ahead

One of the concerns we discuss at infrequent intervals is what Classic would do if Drupal ceased to exist or if Drupal is still the best choice for doing our custom development now and in the future for the types of accounts we're pursuing. Our considerations also have to include our guesses about how the community will adopt things like Symfony or what Drupal 9 might look like.

The recent acquisition of Classic by Imagine! Print Solutions raised the discussion again. The guys at Imagine! have largely bet their development platform on .NET. Should Classic now look to adopt .NET platforms, or vise versa. We pretty quickly concluded that was not likely, at least in the short term.

As a "printing company", the Classic and Imagine! sales teams obviously look for opportunities to put ink on paper, but companies who have failed to adopt computerized order management to match their customers' needs have been becoming extinct in the printing industry. A lot of big business still operate using spreadsheets that get emailed around between departments and edited by people instead of systems. The companies which are excelling in becoming service providers in addition to being a "print shop" can adapt their print manufacturing to a customized list of retail locations or to a particular grouping of kits.


You shouldn't hire a new accountant until your current accountant is unable to complete their work in a normal workday. You ask your accountant to work a couple extra late nights and start looking for another accountant. Wait until the pain has reached its peak, then relieve it. In the meantime, there's a waiting period to put a job posting out, wait for responses, interview people, do background checks, hire them, let them give 2 weeks notice at their current place, and then train them. From the date you decide to hire a new accountant, you may be putting extra stress on your existing team for another 5-6 months.

In my experience, nobody spends big money on custom software development to manage sophisticated data workflows until they're screaming in pain. That's probably the result of some prudent money management, but it draws parallels to adding to your accounting department. By the time a software development budget is approved and a business analyst has writtens some vague specifications, the customer is already impatient. They're living their peak of pain. They won't want to wait for prototyping, agile sprint reviews, automated testing, continuous integration platform builds, VM spin-ups. etc. The better you can streamline all the overhead of project ramp-up, the closer you are to just working on solving the customer's problems.

Insert: cinder block

In the situations where the project is already filled with hot, impatient people, the "when all you have is a hammer, everything looks like a nail" scenario applies. I think the best thing you can do in that case is use your hammer, but I prefer a slightly different view on the common analogy - using a cinder block; a hammer is much too elegant. A cinder block is a clumsy thing to carry around. If you've ever worked with cinder blocks for a long period of time, you'd also find they have fragile points that cause them to leave cinder block crumbs everywhere they go.

I also extend the analogy by introducing oak, the hard wood. Most construction projects for buildings take advantage of softer wood like pine. They're cheaper because soft wood trees grow quicker and are easy to work with. Even when you have the right tools, like a standard claw hammer and some hard-wood nails, driving a nail into oak is a tough task; you have to hit the nail harder, probably a few more times, but the nails are also much more likely to bend. Driving nails into oak simply requires more skill and patience than does pine.

Put it all together now. I think of development like driving a used nail into an oak board using a cinder block. Picture some skinny desk geek gently "tapping" a nail while awkwardly straddling a block. That's development. Even though he might know just where to put the nails, he's going to bend a lot of them.

Using the ideal tools

The problem with development is that developers can't just drive to Lowe's, buy a claw hammer or an air compressor with nail gun, and return to the job site. Professional development is the culmination of years of practice, trial-and-error, and research. For a developer to leave their cinder block behind, they essentially engage in a process of researching all devices that could be used for hitting a nail, types of screws and screw drivers, rivets, whether its appropriate to be using wood or if they should switch to aluminum, then narrow down to one with is most appropriate for a specified budget, go to meetings about how to hold the hammer in the right place, how to apply safety equipment, and on and on.

Since the customer always wants their solutions now, as cheaply as possible, when all the developer has is a cinder block, it's best that they use it. Drupal has been my cinder block since 2004 and I continue to use it because it's been able to solve most of the problems brought to me. It may not be always the most elegant, but I know how to hold the Drupal cinder block in just the right angle to bend the fewest nails. I've built up muscles for holding the Drupal block. Drupal has a lot of flexibility to change and hook in custom code and I've spent a lot of time already figuring out how to use Drupal in a way to minimize project startup overhead.

I think in Classic's case, since we've invested heavily in Drupal and staff that specializes in Drupal, it continues to be the bet for our development in the next 3-4 year window.

Preventing stale

One day sales is going to bring our development guys a project for which Drupal is clearly not appropriate and I would be foolish to use Drupal blinders and not prepare for such an eventuality. Merging with Imagine! makes another whole skill-set available for us to use for solving problems, but I encourage the developers at Classic to spend "community time." I've never really defined community time clearly, but if they were to test the boundaries, I think they'd find there really aren't many. I've even gone so far as to openly encourage non-Drupal after-hours private consulting. Mark is hosting a Meteor meetup this month, a javascript tool built on node.js. I've already tried to shove another developer into learning enough node.js to implement some new print automation on our internal sites, though we don't have any immediate customer-linked need for it. I even recently became certified as a Certified Secure Software Lifecycle Professional, having used some of Classic's business hours to study, because the studying alone made me think of how we could do development differently.


Using your cinder block to hit all your nail problems isn't really all so bad because it's probably still the shortest, cheapest path to driving the nails. Keep researching and learning about other tools so you can occasionally hit the nails with a sledge hammer, the back of an ax head, or even a rare, standard claw hammer. PHP developers should probably be able to read some .NET code, try to take on some bug bounties for a node.js server, and write their own devops scripts in bash instead of trying to get a server admin to do it.

Post categories Drupal
Categories: Drupal News

Edison Wong: Announcing TWBS jQuery: Simple jQuery Update for Drupal 7

Thu, 02/01/2014 - 3:46pm

During TWBS development upgrade Drupal 7 core jQuery libraries into its latest version for Bootstrap is a must. BTW jQuery Update seems not my cup of tea because it give me too much trobule within previous site building experience: too complicated, bundle everything within its own archive (which I love to manage 3rd party libraries with drush make and Libraries API), and it is really too much for my use case. So why not just work out a simplified version?

After some research and development during Christmas holiday, I would like to introduce my helper module named "TWBS jQuery". The goal of TWBS jQuery is to provide a handy support for jQuery upgrade and act as the helper module for on going Drupal-Bootstrap-Remix development.

All replacement will be handled automatically. No additional configuration is required.

Key Features Getting Started

Download and install with drush manually:

drush -y dl --dev twbs_jquery drush -y make --no-core sites/all/modules/twbs_jquery/twbs_jquery.make

Package into your own drush .make file (e.g. drustack_core.make):

api = 2 core = 7.x projects[twbs_jquery][download][branch] = 7.x-3.x projects[twbs_jquery][download][type] = git projects[twbs_jquery][download][url] = projects[twbs_jquery][subdir] = contrib Live Demo

TWBS jQuery is now integrated into DruStack distribution, so you can try it in a live sandbox with

Why Another jQuery Module?

For general and generic jQuery update functionality, you should always consider another jQuery Update module which started since 2007-04-26.

On the other hand you should consider about using this module because of:

  • Purely design for assist TWBS, which means you will have the best compatibility when using both together
  • Fetch libraries directly from original repository and handle initialization with Libraries API; jQuery Update bundle all libraries into it's own code repository and initialize manually
  • Only support latest official version of libraries which result as no additional configuration required; jQuery Update support multiple version of jQuery
  • Much simple implementation which handle all upgrade and replacement automatically; jQuery Update provide more customization options

Please feel free to test it out and comment with your idea. Let's enjoy simplified jQuery update experience ;-)

Tags Drupal Development jQuery
Categories: Drupal News

Bryan Braun: There's more than one way to save a node

Thu, 02/01/2014 - 2:22pm

Every day, millions of nodes are saved. It happens every time content is created, migrated, or updated. It's probably the most common content management task in Drupal.

But there are lots of ways you can change the node-save experience for your users, and there are many contributed modules that offer alternative approaches to saving nodes. Here are a few that I like.

Add another

The Add Another module allows gives users the option to save a node while quickly creating a new one. You can choose to add the option to the admin form itself, or as part of the save confirmation message. It's great for those content types, like "Image" or "Video" for example, where your users find themselves creating a series of nodes in succession.

Hide Submit

Occasionally you'll see an issue where an end user clicks submit on a the node-edit form and, being ignorant of the fact that the request is being processed, clicks submit several more times to see  if it's broken. Sometimes this can lead to multiple form submissions, resulting in bad things like duplicate content. The Hide Submit module does one simple thing: Prevent forms from being submitted multiple times. It does this by disabling the submit button once it's been clicked, with settings to fade out the button, append text, or hide it all together. This prevents errors, but it also signals to the user that the submission is in progress, helping to alleviate a bit of the frustration.

Publish Button

"Does the word "Save" mean that I'm saving a draft or does it mean that I'm publishing the content live?" While it may be obvious for those familiar with Drupal, the intent of the button isn't always clear for new users. The Publish Button module aims to make it more explicit by splitting up the "Save" button into two buttons: "Save" and "Publish". If a node is published, the publish button is replaced with an "Unpublish" button.

Node Buttons Edit

What if you have your own idea on what button text should be used? You could use "string overrides" module for a universal approach to text customization, but the Node Buttons Edit module gives you a straightforward admin page for customizing the button text specifically. No need to incur the additional overhead if you don't have to.

More Buttons

The More Buttons module gives you the option of turning on more buttons (shocking, I know), to further customize your content saving experience. For example, you may want a "Save and Continue" button to save the status of the current input while continuing to make changes. Or maybe you'd like a cancel button, to close the form altogether. If so, this module makes these (and other options) available to you.

So next time you see users tripping over the node saving workflow, remember that you, as a sitebuilder, have a handful of options at your disposal to make things a bit more clear.

Categories: Drupal News

netsperience 2.x: Building a Video Playlist for JW Player 6 with Drupal 7 Views

Thu, 02/01/2014 - 12:31pm

I took over a Drupal 7 project building a web application for college students to upload original videos about their school, and for schools to manage, group, and share the videos.

It's a startup privately funded by the principal, and we are literally working on a shoestring. My previous experience with media in Drupal led the principal to contact me via LinkedIn.

When it came time to build a video playlist in Drupal Views for JW Player version="6.7.4071" (formerly known as Longtail Video), I found very little useful documentation. In fact, someone suggested that those who know how are not interested in sharing their knowlege. -- but not me 

There are a couple of videos on YouTube by Bryan Ollendyke for Drupal 6. But a lot has changed in Drupal since then.

The Goal:

Back to the playlist: Site admins can mark a video featured by ticking a checkbox on the custom video content type. Now I want to display those featured videos as a playlist.

read more

Categories: Drupal News

Acquia: 2013 Greatest Hits – Meet Angie Byron: The Return of Webchick

Thu, 02/01/2014 - 7:50am

Angie and I were at Acquia headquarters in Massachusetts at the same time in the spring of 2013. This gave us the chance to sit down and chat in front of the camera about all things Drupal. Highlights from our conversation became two podcasts with accompanying video. In this part of the conversation, Angie talks about how she got into Drupal and more.

Categories: Drupal News

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer