Showing posts with label GSoC 2007. Show all posts
Showing posts with label GSoC 2007. Show all posts

Sunday, April 29, 2007

Ruby and a clue on DAST

Probably the best thing about GSoC is going to be the fantastically talented people you get to meet along the way. This week I had a short chat with yuesefa from Ruby and he pointed me in the direction of Ruby Rake (make done the Ruby way.) Reading up on Rake, I realized three things:
1. Ruby is a very cool and and very conceptually advanced language. Martin Fowler is a Ruby and Rake fan. It's not praised in a utilitarian way like Python, which is used every and has tons of libraries and bindings. People talk about Ruby more like it's literature than code.
2. A significant segment of Ruby programmers may be insane. This Ruby book - Why’s (Poignant) Guide to Ruby reads like Bruce Eckel on acid.
3. DAST is just a build tool. It's like a Ant project for Drupal. You have build inputs, configurations, outputs and targets which you specify in an XML file. You just write tasks for the build process.

Further investigation along (3) turned up Phing - a PHPized Ant variant which seems to be exactly what I need to create DAST. So, for now at least, it seems my GSoC project has been conceptually reduced to writing Phing tasks.

Hmm..already Ruby seems to be altering my brain in subtle ways...

Saturday, April 28, 2007

From Drupal Dojo: Drupal Live! - Live-CD/Portable-App/Virtual Image project

Drupal Live! - Portable Drupal project

I've had this idea for a portable stand-alone version of Drupal + server stack for a while now; it was part of my initial SoC proposal:
At ~50Mb or less, a Drupal appliance is a perfect way for potential users with no system administration experience to evaluate Drupal.
Advocacy for Drupal can be extended by distributing the Live CD with magazines and in trade shows. Drupal companies and consultants can rapidly prototype and demonstrate a Drupal a solution to their clients starting with the base appliance image.
I've come across a few suggestions for a Live-CD project on d.o:
http://drupal.org/node/40780
http://drupal.org/node/40786

This one caught my I though: http://groups.drupal.org/node/2208#comment-10316
Given my recent experience, I think we may missing out with a largenumber of the hobbyists and small businesses hoping to graduate from their first foray into the web - a static HTML website. They want an incremental approach to avoid burning manpower on a mistake.

After a dozen years of doing all my markup stuff by hand in Notepad, Istarted looking at CMS systems in November. Drupal looked like the best choice after comparing the features and activity levels of the open source CMS communities. I spent MANY hours trying to determine what the core tasks were going to be. Overwhelmed by all the conflicting information, I decided to just dive in and find out if I could swim.

Setting up a minimal Drupal implementation took several tries and I ended up crippling my existing personal webspace in the process. My hosting service has their own MySQL management tools which added to the fun.
This is Wikipedia's definition of a portable app:

To be considered truly portable, a software program must:

  1. Not require any form of formal installation to be carried out on any computer before it can be used, with the release package only needing to be decompressed directly to removable media before use (if it has to be installed first, and requires its files to be manually copied to removable media, it is clearly not designed to be portable!)
    For example, software which is supplied as an InstallShield package should not be considered portable, though a ZIP archives containing an executable would be.
  2. Settings are stored with, and can be carried around with, the software (i.e. they are written to the USB drive)
    If the registry is used to store settings, the application's configuration isn't portable, and must be set up on every PC it is used on
  3. Leaves a zero (or near-zero) "footprint" on any PC it's run on after being used
    i.e. All temporary files/registry settings should be removed once the program has exited, and files created by the user can be saved directly to the same removable media as the application is stored on.
http://en.wikipedia.org/wiki/List_of_portable_software

A portable Drupal app capable of running from a Live-CD, flash drive, or as a virtual image would be a great tool for Drupal advocacy - a nice, knock-your-socks-off Drupal site, people can play with and evaluate and add/change stuff that they want without having to install anything or worrying about breaking their install.

Basically this project will have three objectives:
  1. Create a Drupal distro profile called Drupal Live! (or some cool name) featuring latest stable core and a selection of the coolest modules from across the spectrum of Drupal functionality, pre-configured and tested. The primary audience for this profile are people who want to know what Drupal is and how it stacks up against other CMS. So the modules included should cover all of Drupal strengths:
    1. Content authoring
    2. Content Management - workflow, revisions...
    3. Collaboration
    4. User interface
    5. Themes
    6. Customization
    7. User Management
    8. Authentication and access control...
    9. Administration - Backup, logging
    10. ...others
  2. Create content that uses all off the Drupal distro's capabilities - So the initial actual content of the site would serve two purpose - provide a rich information on Drupal, and show-off the differen't bits of functionality used to create the content. we could make using this content or just running a clean site an option in the profile.
  3. Create the portable delivery system for the distro. In order of increasing difficulty there are:
    1. Portable flash-drive app: We just need a portable user mode web and database server, a script (and optional GUI) to reset the site back to its original state, and optionally any one the of flash-drive app-launchers for auto-running the app.
    2. Virtual image Since virtualization technology is a commodity, a VMWare or VirtualPC image hosting Drupal Live! would also be another plug-and-play way of distributing drupal. There are a lot of ready-made LAMP virtual appliances out there like those from VMware community and Virtual Appliances - http://virtualappliances.net
    3. Live-CD: This is the hardest to do - it's a choice between remastering an existing one or building one from scratch. Typo3 has one though - http://www.vmware.com/vmtn/appliances/directory/193 One cool thing about a LiveCD is that there you can use existing virtual machine software to run it without rebooting - so it could supercede 2. There are a couple of specialized virtual machine hosts for running Live-CDs directly

I can work on the delivery systems but the contents of the Drupal Live distro itself would have to have input for the whole community + marketing people, consultants, etc. What do you guys think?

Friday, April 13, 2007

GSoC 2007 - Drupal Automated Staging Toolkit



I'm participating in SoC 2007 with a project for Drupal - a toolkit for testers for automating the process of creating a Drupal site running a specific configuration. The basic idea is that you specify in an XML file the enabled code modules you want, the CVS versions and patches for each module, the web server, database server and PHP configuration, and the size and shape of the test dataset and users. The tools will then generate the Drupal site code-tree you want, the server configuration files and directives, and database scripts for the test data and users. These are then staged to the server location, and voila, a complete Drupal site ready to go, for unit and regression testing code or benchmarking different server configurations. Time permitting, we'll see if we can automatically stage to a Xen or VMWare virtual image, and then have a self-contained virtual image ready for advanced testing scenarios. I'm really stoked about this project, so thanks to all the Drupal folks who voted for it.

Thursday, April 12, 2007

From drupal.org: Google Summer of Code projects - Drupal's 20

Google will be sponsoring a breathtaking 20 Drupal projects this year, totaling $100,000 in financial contributions. Cool ideas include an SVG drawing tool, Jabber integration, and SMS Framework, and much more. Drupal people say "Thanks Google!" for the amazing support.



read more | digg story