Drupal: Creating Blogs, Forums, Portals, and Community Websites, by David Mercer.
Mercer, David. Drupal: Creating Blogs, Forums, Portals, and Community Websites, How to set up, configure, and customize this powerful PHP/MySQL-based Open Source CMS. Birmingham, U.K.: Packt Publishing, 2006.
Its a pleasure to write a review on David Mercer’s Drupal, Creating Blogs, Forums, Portals, and Community Websites, from Packt Publishing. This title will allow you to know much more about Drupal’s features, and it will become a much more valuable to you as a result.
I have wanted to know more about Drupal ever since seeing Drupal emerge as the Content Management System (CMS) of choice in my local user group community over the past couple of years. You might say that that some of the local developers have really drank the kool-aid by the measure of their enthusiasm for Drupal. There is a Drupal User Group in town now; I also sat in on a PHP User group presentation on Drupal by inventor Dries van Buytaert; I’ve eavesdropped on the conversations of developers waxing away on all the great stuff they can do with it, and how great it is; then of course there was the massively successful Northern Voice / OpenSourceCMS conference, said hi to Dries again, and a couple hundred coders and bloggers, were all very thirsty, hungry, and excited about all they could do or wanted do with Drupal. It was all they could talk about. Drupal Drupal Drupal, its all I ever heard! Its just another Content Management System, right? But I cant remember when I saw so much enthusiasm for a single piece of software. There are lots of Content Management Systems out there, right? Drupal is just another, right? Why this CMS? Is there something to all this excitement for Drupal? What, exactly, is in that kool-aid that everyone else is drinking? Maybe, there’s something to this Drupal thing after all…
Drupal is a content management system written in PHP with MySQL database. Its for blogs, communities, news sites and more. It is one of those select breed of packages that you can always rely upon to run the first time, ‘right out of the box’, with a minimum of effort, ready to run. Then there is a large array of extensions and skins, written by that enthusiastic Open Source community I just mentioned that you can add into your package, and when you do, they just work, with a minimum of instruction and effort. Drupal is what most people would call an excellent example of what Open Source software is all about, with thousands of sites using this package and development communities around the world.
So its a package that works right out of the box, easy to set up and run, lots of resources, and tons of community support. In fact, with some basic knowledge of computers, a shared hosting account, and a bit of your time with David Mercer’s book, you could become a self-reliant owner/operator of a Drupal website, with features and functionality that dynamic websites are supposed to have, supporting categories of text and media, and users organized by roles an access levels you can define.
Say you might be someone I would describe as a website client I build sites for. You could use Drupal and avoid having to pay a developer ( like me ) money to build a dynamic website that has the features that Drupal has. On top of that you would have the benefit of the free extensions, modules, skins, and community that you wouldn’t have if you got someone to code up a site for you. There are arguments against using an off-the-shelf CMS, like if you have a very particular need, type of thing you are doing, but I am not going to entertain that here. You even have the contentment of knowing what it is you have for a website, if you weren’t technically inclined, and you would know six months from now. You are sold, you save a bundle on your website budget, but why would a developer give that all away? The answer is this: the higher the abilities of my clients, the more interesting the work is for me. Work is performed on tasks that need to be done, not on tasks that have been done already. We don’t need to reinvent the wheel here, most of the time, and the work a developer does within a Drupal site can be applied to other Drupal sites, and even shared with the development community. Find out everything to know about Drupal, its history and future, at http://drupal.org.
If you are that kind of person, David Mercer’s book on Drupal is for you. Its a well written book to help reduce your trial and error, and allow you to get on with the business of operating your website in a knowledgeable manner. And isn’t that the point? Its a book that is designed to help you learn about what Drupal can really do for you. Use this book and you can become an expert in Drupal without necessarily needing to be an expert in PHP.
The first chapter provides an introduction to Drupal, and explains again a lot of those whys I covered above, but in detail to give it credit. The second chapter covers setting up your development environment and gives you an overview of the technologies Drupal is built upon, namely the LAMP stack. Follow the instructions in this book and you will be fine. You need a development environment? No, but really you do, trust me, you do. Apache2Triad is recommended as an offline development environment. While I would have recommended XAMPP instead, both do the job. If you don’t have one of these, get one. Hey, everybody needs a sandbox.
You then get lessons in site configuration, and adding functionality. After the groundwork has been laid for you, an aspect that you will appreciate down the road, you get on with the business of adding features and functionality to your site. You get introduced to modules, so you can add the chunks of code you need so you can do what you want with the site, and blocks, so you can place them where you want.
Users, Roles, and Permissions explains Drupal’s web admin system for managing users with access policy, roles, and rules. Access rules are something site owners need to know about because the task of keeping the people you want as members to your site is simpler than keeping the people you don’t like off your site, like members who make nuisance postings in your forum.
You then move on adding and management and content, where you learn how to add and manage content in your site, and then cover in more detail filtering input for code, and what that means, and the Taxonomy module, arguable the most important module within Drupal. The Taxonomy module allows you to determine the method of your your content is organized. Good advice is here: it means the difference between running your site and running it eloquently and well.
The book continues on at in a look at Drupal’s theme system, and techniques for styling and customizing your site look with CSS. The following chapter is on more advanced features and Modifications to the site, with examples such as Adsense, Flexinode, and News Ticker. While depth of this material is in many ways introductory, it also does a good job of indicating for more experienced developers an overview of what depth one has to wade into in order to start in earnest with the customization of the site.
Your site development efforts are all applied together when you are ready to deploy your site. Again, the chapter covers tips, hints, tricks, and other valuable lessons for running your site, such as choosing a host, your database, backups, crons, poormanscron, site throttling, search engine optimization, web site statistics, and more. Again, this material is laid out to cover the major points in live website maintenance so you know how to be independent, but also as an overview to more experienced developers for what in a Drupal site needs to be done the ‘Drupal way’.
You don’t need this book to start with Drupal, but you will learn a lot more about it if you do. And that is the whole point, isn’t it?
The Vancouver Python / Zope User group http://www.vanpyz.org/ put on a great conference this year in Vancouver.
SFU Harbour Centre was the location for the Keynote speech on Friday night by Guido van Rossum of Google. In short, Python plans to go a lot further with its next incarnation as Python 3000, the third version of the language. Next that night was Jim Hugunin of Microsoft. Jim delivered a very entertaining talk about Microsoft’s efforts with Python, called IronPython. made for Python’s integration into .Net. Steamworks, across the street from Harbour Centre, already a great hangout for developers of all stripes, was the location for the reception. Great Reception room, great food made just for us.
The Holiday Inn Express in Burnaby at Metrotown was the location for the conference talks for the next two days. The conference offered three tracks: General, Web, and Beginners. Jim Hugunin would be back for IronPython, and other coding with Python tasks such as how to create Desktop apps for the Mac and Windows and an in-depth look at Embedding Python in other languages such as Java, C, and C++. The web track would have lots on Plone and Zope, and Ajax talks as well. I would stay with the Beginners track, since I work regularly with another language, and this Python thing just keeps blipping on my radar screen.
Python is a programming languages with really diverse purposes. But at its core, what you need to know about Python, if you know any other languages and are wondering, is that it is a language that uses lists, tuples, and dictionaries as its complex data types, and, everything being an object in Python, is be accessed with methods. Thats about all there is to it and what you have seen elsewhere you will find in Python. One of the most obvious features about Python is that for coding’s sake, curly braces are omitted in place of indentation. Now it sounds like a simple feature and some would say ’so what?’ but its a brilliant thing. Ordinarily for code to be shared it has to be indented in order to be easily read, and there is no end to the navel gazing and flaming on this topic about the best method to commenting and indenting of code. In one simple feature, Python has eliminated this issue for developers, making a simple and light syntax that is readable by everyone who can read the language irregardless of who wrote the code.
So back to the conference: Paul Prescod took us noobs through the paces for 2 days with an in depth look at Python. Saturday covered a lot of material that I knew about Python. I also didn’t know much more about Python that what he covered. I think its ok to cover this material. I do. But I hoped for more new material in the first day. Most other people there were bound to know enough about Python to have chosen to be there, but want to know more. I mean we were not noobs to programming, just noobs to Python. The content of the first day was still important, and needs to be covered. We were all looking forward to getting more on the second day and we sure did. We saw more about Python’s abilities with its language and its extensions. Python wins big time already by a disciplined and light syntax using indentation, and a CLI that is actually useful. But the big deal is extensions. You can use Python to write to other languages, such as C, C++, Java, VisualBasic, and their respective libraries. You can use Python for both Web development, using Zope and Django, or create desktop apps for win, mac, linux and others, create rpms and other bundles. Stateless Python is used on Eve Online, a Game network, to handle 10,000 threads at once. Python gets extended in lots of ways – web, desktop, system administration, batch processing, and embedding itself in other languages. When so many programming languages have fragmented the industry, and what anyone can do, Python brings it back together. Why learn java, C, visualBasic, when you can learn Python and have it all? Yes of course there are no shortcuts, but still, for those with skills, Python offers a big leap forward in productivity.
Then the really stunning stuff was saved for last. Great lightning talks, including Andy McKay’s browser based CLI for Python. A big security hole, he tells us, but a useful tool when nothing else will do. Ian Caven’s talk rounded up the conference. Python I had learned is already a tool the visual special effects industry makes generous use of. Everyone there got a real treat I might add – first with Derek Simkowiak’s presentation of Elephant’s Dream - the first open source movie, complete with access to Blender and Python source files. That was a project I had to abandon downloading because I had only learned about it when it was Slashdotted. Ian Caven built a business of digital image processing to restore old movies (Star Wars and many others etc), with a farm of macs and some coding in C++ and Python. Its a business that is all the more impressive, not only for the amazing results, or for revolutionizing the industry, but the ability to have done so with such a small development team.
Its clear that where high powered computing using low level optimization for high performance is needed, Python is going to be a category killer. Its a technology that can slash development times and deliver results that are hard to beat. It hooks in to tons of extensions and other languages, made to output anything, talk to anything. Python as a tool for special effects may bring about an emergence of the creation of new post production companies for image processing, posing some serious competition for the big players in movies and special effects, something the whole film industry would benefit from no doubt.
I’m looking forward to learning lots more about Python. The VanPyz members put on a great conference and I hope that the community continues to grow around this great technology.
For almost every programming language, software, platform, operating system you will also find a local user group where you can find out more for yourself.
A little time spent with user groups can improve your skills. Take for example the possibility of reducing costs by learing how to use Open Source software, or perhaps you can find new ways to serve your clients and customers.
User groups are really for anybody interested in technology. if your skill background is different from the group, its still an opportunity to share your own knowledge, and you add diversity to the group. Think about going to a user group for something you might want to know more about.
User groups arent just for experts; they consist of regular people, and this is important to understand. They are the grassroots organizations for modern technologies, and they help put a human face to technology.
User groups provide an unprecedented opportunity for networking and learning in the field. You can get exposure and information from first hand users you may never get from learning on your own. Regular meetings feature talks by association members or invited guests, and the groups all have websites which post forum discussions and job postings. Groups even occaisonally organize larger events and conferences. Its a great opportunity to see how the field of technology works from the inside.
User groups operate with minimal overhead. Meetings are free to attend, and sometimes there are even courtesy offerings of pizza and soft drinks. Membership is optional. But still what is really surprising is that most user groups are fairly small, even though the opportunities for networking, knowledge and participation are excellent. Maybe these organizations just need a little more publicity to increase their attendance numbers.
The best way to support these groups is by going to meetings because you can help share the awareness of these groups with your colleagues. User groups have become the bulwark in promoting Open Source technologies, which otherwise dont have marketing and advertising budgets that major technology corporations have. It can help you get ahead in your profession - and you can enjoy a good slice of pizza while you are at it.
If only groups were a bit more aware of each other, they could become a greater force and option for the public to get what they want and need from technology.
To start you off, here’s a partial list of groups for Vancouver area. Spread the word!
PHP: Vancouver PHP Users Association http://vancouver.php.net
Linux: Vancouver Linux User Group (VANLUG) http://www.vanlug.bc.ca
XML: Vancouver XML Developers Association http://www.vanx.org/
freeBSD: http://www.vanbug.org
Python / Zope : http://www.vanpyz.org
Java: http://www.openroad.ca/vanjug
.NET: http://www/netbc.ca
Macintosh: Hosted by Apple Canada http://www.mactag.org
Perl: Vancouver Perl Mongers http://vancouver.pm.org
Microsoft: http://www.vantug.com
Information Processing: Canadian Information Processing Society http://local.cips.ca/vancouver/
Graphic Design: SIGGRAPH http://www.vancouver.siggraph.org/
Game Design: http://www.igda.org/vancouver/
Software Developers: Vancouver Software Developers Network (VANDEV) http://softwaredev.meetup.com/17/
Software QA: Vancouver Software Quality Assurance Group http://vanq.org/
GIS: Vancouver GIS Users Group http://www.vancouvergis.org/
Bioinformatics: VanBUG: Vancouver Bioinformatics User Group http://www.vanbug.org/
Useability: The Vancouver User Experience Group (VanUE) http://vanue.com/
Wired Woman: http://www.wiredwoman.com/mc/page.do?sitePageId=2952
Engineers: IEEE Computer Society, Vancouver Chapter http://www.kruchten.com/IEEE/
SuperWebDeveloper.com is Digg proof thanks to caching by WP Super Cache!