drupal: first blush

28
Drupal: First Blush A newbie’s first serious look by: Craig Harris [email protected]

Upload: stu

Post on 11-Jan-2016

37 views

Category:

Documents


0 download

DESCRIPTION

Drupal: First Blush. A newbie ’ s first serious look by: Craig Harris [email protected]. My Background. Very experienced in non-web software: - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Drupal: First Blush

Drupal: First Blush

A newbie’s first serious look by: Craig Harris [email protected]

Page 2: Drupal: First Blush

My Background

Very experienced in non-web software:

I developed large apps in C/C++, Java and a host of other languages for 20 years. The primary focus was desktop “design automation” software

Very little web experience. I made a tiny initial website in 2000 for my second software company

Web-related knowledge:

Have ‘read’ about HTML, CSS, JavaScript, CMSs, Web Services

Have ‘read’ about various website building tools ( including CMS’s )

Played with Wordpress

I own Dreamweaver, but have never used it ( except for doing the tutorial ). I expect I’ll use Fireworks and Photoshop

Page 3: Drupal: First Blush

Purpose of the presentation

Share my first Drupal experience with the SCWeb Dev Group

Explain why I’m interested in Drupal

Describe the process that I went thru in evaluating Drupal

Let you know what I discovered in the process

Summarize the lessons learned

Page 4: Drupal: First Blush

My Current Goals

I’m developing a small media company.

This will require developing a few websites - that incorporate some community-type features.

E.g. membership, member contributions, member management, user interactivity, maybe crowdsourcing

I need to focus most of my effort on content development so I am looking for website building technology that is powerful and scales* well

“Ideally” I’d like a CMS or other tool that doesn’t require a lot of coding and can be made to look/feel good without too much effort ( a tall order!)

I might need to offload the website work, and if I do, that code needs to be well designed and maintainable

Page 5: Drupal: First Blush

Why I have selected DrupAL for eval

• PROS:

It’s a CMS that provides a lot of the features I need

As a CMS, developers seem to like it the best for many reasons

It’s flexible, powerful and scalable - and is architected well (important)

It is fairly mature and robust

It has good features (security, SEO, and lots more)

It’s extendible thru modules (write your own or acquire from the community)

Appears to have fairly large and savvy software-oriented community

NOTE: I did take a glance at the dozens of other CMS’s and COM builders out there

Page 6: Drupal: First Blush

Why I have selected DrupAL for eval

My Concerns:

It may require a lot more coding than I would prefer (?)

“Apparent” lack of high quality themes (not sure. maybe themes are easy to create/modify?)

I hear that most common community site functionality is available - but I don’t know how “good” it is

I’ve been told the learning curve is steep. How steep? (what does ‘steep’ mean?)

I’m willing to put extra effort into a good scalable solution, but this is dangerously seductive. This represents a real challenge for me

Page 7: Drupal: First Blush

To Date...

August: Initial Look

I first became aware of Drupal in August and tried it

I decided to build the server on my local computer:

I’m using MAMP ( Apache, MySql, PHP) on my Mac

In my initial pass I decided to use D7 (latest and greatest)

Many themes and modules did not support D7 at the time (most importantly “Media”); I couldn’t find any good themes, so I stopped website dev and focused on other things.

Page 8: Drupal: First Blush

to date...October: Took a Second Look

After discovering SCWeb Developers, hearing about Darren’s experience, and reading a little more, my interest in Drupal was re-sparked, and I decided to take a second look. There’s something seductive about it (I think it’s the architecture and design)

Then after discovering the Santa Cruz Drupal Group, and receiving their input, I decided to take a second shot and evaluate Drupal, and in particular D7

Reason:

A working version of “Media” is now available

The group believed decent extension modules were available to cover standard community-type features (including ecommerce, ranking, etc. etc.)

D7 is pretty cool

Because I need to limit website dev time, I wanted to develop an efficient evaluation strategy

Page 9: Drupal: First Blush

Eval Plan

Goal: Calculate required effort and feasibility as fast and accurately as possible

Write a tiny spec that covers the most critical features I require

Attempt to characterize the true effort of each feature

For each feature:

If it’s clear that the feature will work, move on to next feature

If the feature doesn’t work or exist, take special note:

Try to characterize the cost of the solution or work-around

Bottom line: Pay special attention to the 80/20 rule and try to ‘feel’ where all the work is going to be done!

Also using learned lessons, calculate the cost of developing and maintaining a full Drupal site

Page 10: Drupal: First Blush

Tiny Spec

• Features:

Create an ‘elegant compelling’ theme*:

either from an existing theme or custom work (the drupal template file)

Allow members to submit articles that contain audio/video/text

Create/manage multiple types of content

Each content type will have different structure

Create dynamic pages based on different views of the content

Support ranking in some way

Support standard social networking capabilities ( facebook, RSS, affiliates )

[Explore more elaborate crowdsourcing capability**]

Not focused on ecommerce components yet ( shopping carts etc.)

Page 11: Drupal: First Blush

Learning Strategy going in

Start with Drupal.org site:

Try to learn the concepts and features

Google and youtube into the Drupal websites/videos:

especially for tutorials

Talk to Drupal people live about Drupal life

Buy at least one book

Communicate with the Drupal online community

As I find the best resources, drill down and leverage them more.

Page 12: Drupal: First Blush

THe resources I used

It was frustrating at first: The Drupal site seemed opaque and complex. But I eventually found some good video tutorials from NodeOne and LevelTenDesign that got me started.

http://nodeone.se/blogg/learn-drupal-7-sceencast-series-summed-up

http://www.leveltendesign.com/tutorial/video/drupal-7-tutorial-list-fields

Then to learn how the system is structured, I used the Drupal.org docs

It’s extensive, a little unwieldy, but I was able to find the answers to most of my questions ( What’s a “node”, a “block”, a “region” etc.)

I also bought the book: “The Definitive Guide to Drupal 7” (Haven’t used it much)

Various contributors

“Lots” of Drupal sites: Acquia, DrupalGardens, etc. etc.

Page 13: Drupal: First Blush

MOre Resources

I only recently learned about the local Drupal group.

http://groups.drupal.org/santa-cruz

They seem to be an active group of Drupal website developers

In my first meeting I learned a lot, including the source of extensive tutorials:

http://drupalize.me/videos/

http://buildamodule.com/

These are paid-for tutorials, but the price is low ( ~$30/mo) and the quality is good

Most recently: Mustardseed: (espeically for media)

http://mustardseedmedia.com/podcast/episode50

Page 14: Drupal: First Blush

About the “Features” • Create an ‘elegant compelling’ theme and UI:

Navigation and Menus are straight forward to set up

Modern menus: seem straight forward (Nice Menus or Suckerfish)

However after installing Nice Menus and getting it to work, behavior needs tweaking

Theme (layout + look) : Next to media handling , definitely the largest cost if you create your own

Bad news: if you use D7, and don’t want to code a lot, the contributed themes that I found are not great ( maybe I didn’t look in the right places)

Good news: Drupal Theme architecture is somewhat “modular”, so if you are CSS/HTML/PHP savvy, you can develop your own. For me, this would be big learning curve, and if you’re an expert, requires a lot of effort also

I learned that in order to customize a Drupal theme:

I at least need a css editor ( thinking CSSEdit or firebug lite; any opinions?)

Page 15: Drupal: First Blush

About the “Features” • Allow members to submit articles that contain

audio/video/text

Well, Drupal is a CMS. If it can’t signup members and they can’t submit articles,.........%$#@&^&

(Minor point: When I tried to add users, email conf did not work locally)

Members can submit articles, but the only built-in media handling is embedded video code from Youtube, etc. (i.e. very weak)

About Media: The Great Rabbit Hole of Drupal 7 : It’s a dizzying experience.

I tried hard to use the new Media Module: Found a technique that requires 7 specific related modules and yet produces a weak solution ( frustration + time warp)

Can get help from the developer community, irc channel and Media group but this is time consuming and doesn’t necessarily yield a good strategy

Many solutions to music - they’re mostly weak

However after much research and work, I did find a solution: MediaElement Module + MediaElement.js

Page 16: Drupal: First Blush

About the “Features”

• Create/manage multiple types of content

• Create dynamic pages based on different views of the content

The Wheelhouse of Drupal: This is one area where Drupal really shines!

• Whatever content types (structures) you CAN construct, it’s easy to:

1. Create different content types (structures)

2. Create/manage different views of the content structure and substructure

Page 17: Drupal: First Blush

About the “Features”

• Support ranking in some way

There isn’t a lot out there for D7 except the very basics

I have not yet found a really good ranking type module

I installed Voting API + Fivestar and got it to work for ranking (modulo some minor behavioral problems)

• Support standard social networking capabilities ( facebook, RSS, affiliates )

I researched this but didn’t spend a lot of time on these issues

But what I did read and try seemed to be relatively straight forward

Bottom line, not a big concern - but again only basic capability

•Crowdsourcing Capability

There are some crowdsourcing tools/techniques besides hosted solutions

There is the Ideation Module, but I haven’t gotten to this area yet

Page 18: Drupal: First Blush

Lessons learned (for my Specific goals)

About Infrastructure Issues (Site maintenance):

To maintain a site, I’ll need more tools Drush, Git, Cpanels and more) and MUCH more time

GIT is a distributed version control system and more ( has GUIs)

Drush is a command line interface

CPanels for server interaction

To maintain a site(s), it will require a lot of work ( updates to Core, version control etc.)

About Website Feature Development

Membership management is built-in, very powerful, easy to use*, and scalable

Content management is built-in, very powerful, and easy to use*, and scalable.

There are even modules being developed for node hierarchy and view hierarchy

Page 19: Drupal: First Blush

Lessons learned (for my Specific goals)

• About Website Feature Development (Cont.)

Media handling is problematic and messy thus far in D7 - but there are “fair” solutions. Many approaches are very time consuming

Theme development is one the biggest costs in using Drupal 7 (and where the largest learning curve is for me)

This requires much deeper understanding of the Drupal architecture including templates, the API, and much more

For my purposes, both free and commercially available themes are weak

Even if you hire a themer, I anticipate it will be hard to collaborate in a cost effective way. This may be a business opportunity for a great themer

Create dynamic pages based on different views of the content is a big strength of Drupal. It’s easy, powerful, flexible

Standard Components (ecommerce, social networking, ranking, voting, tons of others) are mostly available in the form of modules, but usually only in their most basic form (implementation)

if you require high quality or more refined functionality, you probably need to do it yourself ( Custom work)

Page 20: Drupal: First Blush

Lessons learned (for my Specific goals)

• About Resources

There seems NOT to be a dominant single comprehensive resource for learning

I use an array of providers/resources

Online tutorials, Drupal.org docs and browsing resources, Drupal community is very helpful. Books have not been that useful thus far. (More specifics are in the appendix).

Even the high-quality tutorial providers...........

BuildaModule, DrupalizeMe, Lynda, GotDrupal, NodeOne, MustardSeedmedia, Tutr.Tv, Acquia, yadadrop, and many more

....may have major gaps and overlap in the areas you happen to be interested in

• About Overall Drupal Life

Whether you’re a pro or not, there is a steep learning curve

As a Drupal user or developer, you will most likely get very involved with the broad and deep Drupal community, and also spend a good deal of time searching for and experimenting with Drupal modules, themes and tools

Page 21: Drupal: First Blush

Results

‣ I spent a lot more time on this eval and have made less progress than I expected (way more than 25% of my time for the last 1.5 weeks)

‣ When developers use the word “Steep” in describing a learning

curve, they really mean it!! This is the main take-away for me.

‣ On the one hand, I’m amazed at how good an open source CMS can be!!!!

‣ I’m very impressed with the D7 software and Drupal community

‣ Drupal is a high-powered platform, with a good architecture, and a well-organized, savvy engineering community behind it (considering the challenge)

Page 22: Drupal: First Blush

Results (cont.)

• Bottom Line:

‣ If you are a professional website developer already....

‣ If you need a CMS as part of your toolkit to develop a number of CMS-type sites, and willing to endure a steep learning curve, I think Drupal might be the best solution out there. (unless you want to pay huge software tool fees for commercial CMS’s)

‣ If you are a non-professional....(like me)

‣ If you only want 1-3 community-type sites, and the standard Drupal look and feel* is good enough,...and if you are willing to endure the learning curve, Drupal is potentially a good solution!

‣ If you need something beyond the standard Drupal site* (i.e. very basic community themes, features etc)., you are probably in for a big challenge.

‣ Of course this is probably true no matter what tools or CMS one uses

Page 23: Drupal: First Blush

Next Steps for me... Since I am in the last category, this research leaves me in a bit of a quandary:

If I can’t find off-the-shelf themes and necessary modules (that are very close to my goals):

I’ll either need to spend a great deal of time theming,..or

hire someone,..

or use another CMS where I will encounter different tradeoffs.

My action plan:

In parallel:

Take a look at WP + BP: especially for themes with community capability

Intensify my search for Drupal themes that more closely match my targets

Consider spending a great deal more time on website design & development

Page 24: Drupal: First Blush

the end,......thanks

Page 25: Drupal: First Blush

Appendix: Most Useful Videos

• Best basic video tutorials

http://nodeone.se/blogg/learn-drupal-7-sceencast-series-summed-up

http://nodeone.se/blogg/taming-the-beast-learn-views-with-nodeone

http://www.leveltendesign.com/tutorial/video/drupal-7-tutorial-list-fields

http://drupalize.me/videos/

http://buildamodule.com/

http://gotdrupal.com

http://www.techievideos.com/videos/

http://www.lullabot.com/ideas/podcasts

http://geeksandgod.com/tutorials

http://drupaleasy.com/podcast

http://www.drupalove.com good aggregate

http://tutr.tv/

Page 26: Drupal: First Blush

Appendix: Most Useful Videos (Cont.)

Best media related videos

http://www.youtube.com/watch?v=duuLlEVFves&feature=related

http://mustardseedmedia.com/podcast/episode50

http://tutr.tv/t5858

http://yadadrop.com/drupal-video/drupal-7-media-gallery-field-demo

http://www.mediafront.org/dallas-drupal-days-2011-presenting-media

http://www.youtube.com/watch?v=k7tbGXjMRWQ

Basic Theming

http://www.lullabot.com/videos/introduction-theming-basics-drupal-7

http://www.youtube.com/watch?v=sCg4sTA3DlQ

Page 27: Drupal: First Blush

Appendix: OPen Issues

Ideas for SC Web :

projects: what if there was a core site or theme we wanted to collaboratively produce

I cant tell whether any of the starter themes (like adaptorTheme) are useful or not, curious

when installing views: got hanging but on second try worked

MediaElement allows me to set “number of values” in audio/video field only occaisonally. It hangs usually

Page 28: Drupal: First Blush

What’s A CMS?

A content management system (CMS) is a system providing a collection of procedures used to manage work flow in a collaborative environment. These procedures can be manual or computer-based. The procedures are designed to do the following:

■ Allow for a large number of people to contribute to and share stored data■ Control access to data, based on user roles (defining which information users or user

groups can view, edit, publish, etc.)■ Aid in easy storage and retrieval of data■ Reduce repetitive duplicate input■ Improve the ease of report writing■ Improve communication between users

■ Makes its easy to do all of these things

■ As an Example: Dreamweaver has virtually none of this