Archive for the ‘ Drupal ’ Category

After months of development, I’ve finally arrived at a live Drupal content management system. It was developed on a MacBook Pro using a MAMP technology stack (Macintosh operating System, Apache web server, MySQL database, and the PHP scripting language).
I spent the past few days configuring Apache on the production server. Nothing seems to be configured as ‘on’ by default, for security reasons, I’m sure. Going with Apache and Drupal meant having access to a massive community knowledge base to help guide me through the process.
I’ll post the details soon!

The final week has come and gone and there is still more work to do, of course. 10 weeks was tight, but there is a CMS and it can manage an animation production.
Of particular note are the myriad of community contributed modules that I have researched, installed, configured and tested.

Here’s a few modules for Drupal 6 in use so far:

CCK 2.6
CCK Fieldgroup Tabs 1.2
DHTML Menu 3.5
FCKeditor 2.1
File Field (CCK) 3.3
Front Page 1.2
Imagecache 2.0 beta10
Image Field (CCK) 3.3
IMCE 1.3
jQuery UI 1.3
Link (CCK) 2.8
Messaging 2.2
Multi Select (CCK) 1.7
Node Clone 1.0
Node Import 1.0 RC4
Panels 3.3
Path Auto 1.3
Privatemsg 1.2
SWFTools 2.5
Tabs (jQuery UI Tabs) 1.3
Timeline 2.1
Token 1.12
Views Reference 2.24
Views Bulk Operations (VBO) 1.9
Views Calc 1.3
Views Fluid Grid 1.1
Views 2.10
Workflow 1.4

There’s a few more, but they are more API related than anything. With contributed modules, there is almost no limit to what you can do with Drupal. I’m even thinking of firing up a Drupal powered site of my own.

Well, it’s been a long road and I am almost at the end. There has been another delay in the Drupal Content Management System for Big Jump Productions. Working on small projects to bring in more work to the studio has taken precedence. Although I cannot talk about what those projects might be I can say that they are well worth the interruption in the CMS project.

In the past few weeks, a lot of progress has been made with the CMS.  To sum up, I’m using Drupal 6.15 and a plethora of contributed modules to extend the core installation.  Notably, I am using Views 2, CCK (Content Creation Kit), and Panels to give the CMS the flexibility required to manage the information of a typical animation production. The contributed module, Front Page has been a huge help in giving users a unique home page where I can list content that summarizes the productions and departments they tend to. With the help of something in Views called “relationships”, I can make custom tables that list content that individual users are involved in maintaining. If you are at all familiar with Drupal, you know that each piece of content, be it a page or blog entry, is referred to as a “node”. Users who create a given node become that node’s author.  In the case of Big Jump’s CMS, an Animator, for example, can create a node (or be assigned one by their supervisor) that represents a scene that they are responsible for animating.  Of all the hundreds of scenes that an animator may work on over the course of a single production, I can list them apart from those of other animators and add them to that animator’s custom start page. Very nice.

There is also private messaging which provides each user with an inbox and notification when new messages are available.  Instead of buddy or contact lists, the user just starts entering the first name of the other user they wish to send a message to. The system auto-completes the name and list multiple choices if there are more than one users with the first name entered. I am using usernames that list each user’s first and last name, separated by a period. With the auto-complete feature, I think this will help people learn each other’s last names in the process.

I am using a contributed module called “Pathauto” which enables me to set up automated URL aliases that retrieve their names from fields within nodes. So URLs make sense to users and can be linked to reliably. A given scene page might look like this http://www.awesomestudio.com/production/awesome_show/episode/10/scene/101. Nice and clean. Before using Pathauto, the same URL might read http://www.awesomestudio.com/node/123. If I didn’t have “Clean URLs” turned on in the core settings, the URL would be even more “unfriendly” and look like this: http://www.awesomestudio.com/?q=node/123. So Pathauto rocks.

There are a few more modules I have to install, configure and test before I am done. Still to some is a module called “Timeline” that can be used to view all production departments and the episodes they are working on, set to a defined schedule. It uses DHTML and AJAX and is quite slick. I would like to have it become more interactive in the sense that you can click on elements in the timeline and have it take you to episodic pages. Currently, it just reveals pop-ups that give details on elements on the timeline. Like so many of the contributed modules, they can only take you so far in how they were originally designed. To go the rest of the way, you have to get in there yourself and start coding PHP. Since a 10 week scedule has only allowed for mostly site building rather than development, I will have to save the programming to a time later in the future.

Next week would be the 10th and final week, but this latest test project has me putting the CMS on hold until sometime next week.  So the actual remaining weeks are week 9 & 10 which will most likely re-comence after next week. I’ll keep you posted!

After a 3 week side project, I am back into my CMS work. So if anyone was keeping track, I only finished my fifth week on Friday instead of my eighth. The side project warranted the brief break from the CMS.

I only got back onto the CMS project mid-week last week, so most of my time was spent getting my brain wrapped around Drupal all over again. The hardest part was I had installed quite a few contributed modules.  The common modules, like CCK and Views aren’t a big deal, but there are others that change the landscape somewhat while administering my clients site. There was a point, around Thursday morning, when I thought it would be best to just start over. I haven’t been given any “live” content to enter into the system anyways.  It’s pretty much left up to me to decide from a complete library of past production files which content to load and test with.

Things started looking up Thursday afternoon when I started cleaning up my use of the Drupal “Books” pages.  For those who might be new to Drupal, it’s the best thing they have to creating structured pages in the form of hierarchies. It’s almost perfect for animation production where most projects usually have heirarchies like 1.) production name, 2.) episode name, and 3.) scene number. From there, everything else is individual assets like characters, props and backgrounds. assets get their own dedicated page. Asset pages are always linked to a production “book” and most often, they’re linked to episodes and their scenes as well. I am becoming hesitant about making scene pages part of the production book heirarchy. Mainly, that’s because their might be anywhere from 150 to 300 scenes in a 11 min. to 23 min. episode and that’s a lot of child pages that would appear in various UI drop-down lists. It’s not a huge problem, yet, but, like I said, I have my hesitations about it.

So this week ended with me cleaning up the book hierarchy and also setting up some of the home pages that each user would log in to.  I also made a more logical setup of side bar blocks that act as navigation tools for moving around the production book pages. This was made possible through the use of Views 2. It took (and is still taking) some time to gain a clear understanding about how Views works with Blocks. I am trying to make summary pages using Views as well. That’s pretty much where I left off on Friday. Drupal is amazing. Frightening at times, but always amazing. Frightening because you realize that you can do almost anything with it, and that’s a huge responsibility to keep it simple and get it done within a specific time frame. I’m sure I can speak for site builders everywhere when I say that if I had unlimited time, I could rock this site with Drupal!

Week 6 starts tomorrow and there are only 4 more after that! Test sessions with actual users begins later in the week. Wish me luck.

Wow, what a week! They just keep getting better and better. I’m writing this post on the Monday of week 5, but it’s a provincial holiday (Family Day) here in Ontario and I didn’t get around to writing it last week so, here goes.

This week saw a lot of research on the Drupal modules and nailing down a concrete page flow-chart that I sent off to the folks at Big Jump Productions.

At the end of the week I was asked for my WordPress blog files so that they could be uploaded to the web server and made live.  I had never done this before and only knew how to do it in theory.  Thanks to some wonderful help from the WordPress community in the form of blogs and forum posts, I successfully got a local install of WordPress to migrate successfully to a web server for all the world see.

It involved working with phpMyAdmin, and using my text editor (TextWrangler), to search & replace all the instances of “localhost” in my database with the actual URL of the live site. A great resource for this came from here from the folks over at revolution-media.net in Ireland.

The real problem came when I somehow missed a few instances of the old localhost addresses in the database.  I didn’t know this at the time.  All I know was when I went to visit the blog online and the page looked like just text and html links on a white background.  When I moused over any of the links I could see down in my status bar in my browser that they were linking back to their old localhost addresses. Now here is were I made things worse. Instead of going back into my exported databse SQL file and seeing if I had missed any of the localhost links, I opend up my local developement installation of the wordpress site and logged in as administarator. I was looking for anything in the settings that might still be pointing to the old “localhost” address. Of course, I found on the settings page, that there were two such settings. “WordPress Address (URL)” and “Blog Address (URL)”. In a fatal moment of missguided intuition, I changed them both over to the online URL (ie. www.blog.com). As soon as I clicked the Save Changes button, I was immediately logged out and couldn’t get back in. Confused I went to access phpMyAdmin through MAMP.

Well, trying to even view the Start page in MAMP I was hit with a “403 Forbidden You don’t have permission to access / on this server” message. My heart sunk. Now what? A few google searches later and I found out that what I did, caused WordPress to place a .htaccess file (which is, by default, hidden on a MAC) and what it contained was causing MAMP to throw up that 403 error. There were a few suggestions on how to fix this, but the best came form here. The last comment contains the best answer IMHO. It’s from catherinwonderland and shows you how to simply show the hidden file and delete it. It’s that simple.

So, that got MAMP working again, but I still could’t log into the local site.  Rather than waste any more time trying to hack PHP files or dig through the mySQL database (which is where I was about to go next), I remembered I did a complete system backup of my computer on Friday.  That backup contained, amongst other things, the complete WordPress site and database. It was all contained in the MAMP folder, in the applications folder, on the MAC.  I renamed the MAMP folder that was there and copied over the MAMP folder form the external backup drive. Problem solved! And a BIG lesson learned. Don’t mess with settings that effect your site on a root level. You could lock yourself out, like I did.

Well, it’s back to work tomorrow and I can’t wait.  The WordPress blog is going to be live and will only require routine maintenance and administration from now on.  The Drupal CMS will hopefully be ready for a test session by week’s end. I’ll keep you posted ;)

Thanks to a meeting with the owners and senior staff at Big Jump Productions this week, there is greater assurance that everything is moving in the right direction. Trying to design the Drupal platform (a powerful open source content management system) around an animation production pipeline has its challenges. Namely, how to pole and present the data contained within to different users.  So far, I have been focusing on the basic episodic production hierarchy of production/episode/scene.  You could also use other names like project/show/shot.  They are same but for the sake of designing a system to manage it, we’ll settle on the former example. Now I need to address the hierarchy of departments with the production.

Also decided in the meeting, was the move away from managing file uploading/downloading with the CMS .  This was mostly because of the load it might put on the system.  Productions are all full HD so some scene files coming out of Flash could top 70 MB or more.  Storyboards, which are drawn all digitally, have to be sectioned up because a given sequence of scenes could produce a Flash file well over 150 MB. It’s disappointing that Drupal can’t do it all, and who knows, maybe it can, but, for now it’ll have to be a two-tiered system.  The first tier is Drupal and very efficient, and the second tier will still have user uploading/downloading files to server folders both in-house and over FTP when connecting from out-of-house. Perhaps after things have been up and running for a while, I’ll test a small department with their file uploading/downloading needs and see how the system handles it.

So next week we set up the web server and move over the WordPress Blog.  If that goes well, there will be time to move the Drupal CMS over as well. The CMS is a password protected site, o I am not worried about continuing development in a live setting. We’ll see how it goes. I’ve got a couple more weeks before I want to introduce users to the CMS.  There will be a lot of streamlining and the training to do before that happens. It should be an interesting week, next week.

The second week of putting together Big Jump Production’s content management system and revamping their blog is almost over but I can’t wait until tomorrow to blog about it.

Yesterday, and a good portion of today, was spent porting Big Jump’s blog over from it’s current home on Blogger.com to WordPress installed on my local MAMP setup (MAC OS X, Apache web server, MySQL database server, and PHP scripting language). This is also known as the technology stack in web development circles. I also found a great design template called “Pixel” and put some of it’s features to good use.  One of the features was the listing of categories near the top of the page.  It sort of acts like a standard menu, but it’s just for categories.  This is great because Big Jump specifically asked for the ability to group blog posts by subject and link to them directly.

This WordPress blog is going to be seperate from the company’s main site, but they also wanted the ability to see a sneak peak, or teaser, of the “news” related blog posts from the main site. Through the use of something called permalinks I am able to provide a link to what is called an rss feed. Basically, this means that instead of a static link that never changes, a live link that displays the subject and a brief snippet of the body of the text is visible. The great part is that it changes as newer posts become available, all done automatically. Rss feeds are a great way of staying up to date on changing content from your favourite web sites, if they offer it. So using categories with this feature is going to make for a very powerful blog.

That was what it was like at the studio these past couple of days, but tonight was even more eventful.  Not to long ago, I discovered a web site called Meetup.com and a local meetup group for web developement. Although I have had many chances to attend various meetup events, I always found excuses not to go. Well, when I got an email reminder last week telling me that there was going to be another meetup event here in Ottawa and it was to talk about the Drupal content management system, I just couldn’t say no.

After meeting with three of the members of the web development firm, Wirespeak, and five other attendees from various related fields, I was left with a huge boost in my confidence in working on this project.  Although I have a few years experience workng with WordPress, a content management system for blogging, I have never worked with something as powerful, and versitile, as Drupal.  I know it was probably capable of doing what I need it to do at Big Jump, but I wasn’t 100% sure of this. After hearing what the Wirespeak guys had to say about it, I doubt no longer. Yes, it’s an amazingly good feeling when you spend so much time diligently researching something and find out from others with years more experience that you are right on track. That was the perfect conclusion to a hectic week, I am happy to say.

And there is still one more day left. What am I going to discover tomorrow? I can hardly wait.

I am just starting my second week on Big Jump Production’s new content management system and thanks to something called MAMP and some very well behaved children over the weekend, I’m off to a great start. At first I heard that Snow Leopard (OS X 10.6.2) had an Apache web server built in, which it does.  All I had to do was install the PHP scripting language and the mySQL database and I would be all set.  As I began looking up some of the install handbooks over at drupal.org, I saw a reference to something called MAMP. MAMP is an acronym for the four pieces of software used to run Drupal, and subsequently, the WordPress blogging platform. M – MAC OS X operating system, A – Apache web server, M – MySQL database server and P – PHP for the scripting language. MAMP can be downloaded for the MAC over at www.mamp.info.  It’s awesome.

Now I am not yet a programmer, and with Drupal and WordPress, at the most, I would have to get my hands dirty with only a bit of light scripting, but I spent most of my Sunday afternoon pouring over commands in the OS X terminal window.  Fortunately, OS X is basically UNIX underneath pretty interface. Once you’ve learned a few basic commands over the years, they stay pretty much the same.  I found the documentation on getting started with MAMP on drupal.org and except for small snag around changing my default root user password on the database server, everything went well.

I was feeling pretty good once I bookmarked my Drupal and WordPress sites, both running off right off of my laptop.  How cool! I spent the last half of my day diving right into Drupal.  I Installed a few very powerful modules and started creating custom content types.  I soon realized that there are just so many options available to you, that you find yourself stuck trying to choose the one that users will find the easiest.  I did actually start with a flowchart first.  That was the majority of week one.  I still managed to make a mess of content types and menus.

With Drupal up and running, taunting me to log in and start building, I couldn’t resist. You can only read so much in books and websites, and watch so many Drupal podcasts before you just have to jump in start building. And folks, that what I did.  Sure, I inevitably painted myself into a corner by day’s end, but now I can go back to the books, sites and podcasts with a greater appreciation for all that knowledge I am shoving into my noodle. No regrets. I can’t wait to start again tomorrow.

Web Development – week 1

Yesterday (Friday) marked the end of the first week of developing Big Jump Production’s new file management system.  This kind of system is better known to the web development community as a content management system, or a CMS, for short.

I am still working with the production staff to nail down the particulars of the present, all-manual system.  Once complete, the CMS will enable staff to launch a web browser on any computer connected to the internet (or the studio’s internal network), log in and immediately begin viewing messages, work assignements, notes on revisions, work that is approved and ready for invoicing, and the progress of the production as a whole. It’s a tall order and I have only 9 more weeks until the first of many modules is due to launch for users.

I am using the open source CMS, Drupal.  It’s an awesome web platform.  For community web sites, forums and blogs, it’s practically ready to go, right out of the box.  For what I am asking it to do though, there is much more customization needed.  Imagine a page dedicated to each and every character, prop, background, storyboard, or scene.  Of course, automation is necessary as there are hundreds and hundreds of pages. I still have to work out whether I can find a module to enter the plethora of information needed, or learn how to write it myself in PHP.  I am holding out for the former and not the latter. Not that I am not up for the challenge, but I don’t want to cut it too close to the deadline with custom code.  I trust I can rely on the Drupal community of developers and users to help me through it.

As an extra bonus, I will be rolling out a new blog for Big Jump, using WordPress (which I am currently using for this very blog).  I am very familiar with installing and administering it, but the first hurdle is to get it running properly on an IIS web server.  Depending on what version of the server they are using, there might be the need to install a few extras, something I have never done before.  I guess this is where I get to work with the IT department to make this all happen.

Lastly, I will be pushing forward on an old passion of mine, writing extensions for Flash.  This is something a started back when I was with PIP Animation.  Finally, I will be dusting off some old extension projects and exploring some ideas for more.  Whenever I am given the green light to share some of them, I’ll post them here.  So add this site’s rss feed to your feed aggregator and watch for a future post on these Flash extension.