Drupal talk
The Future of Moodle and How Not To Stop It (iMoot 2010)
Yesterday morning I got up at 6:30 to deliver a presentation at the very first virtual Moodlemoot: iMoot 2010. All in all it was a hugely enjoyable experience. I had people attending from among other the United States, Ireland, Zambia, Australia, Japan.
The platform for delivery of the session was Elluminate, which worked flawless. I am still amazed at the fact that we now have easy access to the technology that makes a virtual conference with a worldwide audience possible.
My talk was titled “The Future of Moodle of How Not to Stop It”, an adaptation of the book by Zittrain.

The Future of...
I first recapped the recent discussion about the death of the VLE:
-->
![]()
elearningstuff.wordpress.com
This movie requires Adobe Flash for playback.
-->I showed how Moodle was conceived and developed when the web was less mature then it is now (the social web as we know it was basically non-existent) and how a teacher can create a learning experience for his or her students using nothing but loosely coupled free tools. Horses for courses.
I then looked at the two mental models that Moodle could adapt from Drupal:
- Drupal’s tagline is “Community Plumbing”. I believe Moodle’s could be “Learning Plumbing”.
- Drupal sees itself as a platform. This is exactly what Moodle should reinvent itself as.
In the final part of the presentation I looked at how the new Moodle 2.0 API’s (repository, portfolio, comments and webservices) will be able to help make the shift towards a platform. I finished with asking people to imagine what an appstore for repository plugins and what an appstore for learning activities would look like.
The slides are on Slideshare and embedded below. The session has been recorded. Once that recording comes online, I will update this post and try and share that here too.
The one difficult thing about a virtual conference, by the way, is communicating the dates and times. Timezones add a lot of complexity. iMoot, for example, provides users with a custom schedule for their timezone and replays each session twice after the live event. I am starting to believe in the Swatch Internet Time concept again. Wouldn’t a single metric .beat not be great? See you @850!
Ubercart NZ Bank Transfer at Checkout
Here in New Zealand paying by bank transfer is totally normal. Its what we do. I dunno what its like over the rest of the world but here almost anything can be paid for with bank transfer and its great coz it means you don’t have to have a credit card to buy online.
I wanted to have this on my website but it wasn’t in the modules that come with Ubercart so I had to go looking for it.
Once I again I found my answer in the Ubercart forums. That place is great!
I downloaded another module from drupal.org called Bank Transfer Ubercart Payment. There is a ‘Read Me’ which explains what to do to get it to work. It looks a bit confusing but if you read it slowly line by line and don’t move to the next line till you have done what the previous line asks then it shouldn’t be too bad.
All it does is add the option to pay by bank transfer and then adds an action where an invoice will be sent out with bank details on it.
When you see the money come into your bank account you can then go into Store Administration and into Orders and look at the order. You will see that the order is still awaiting payment coz no one has recorded a payment. What I do next is to manually record that the payment has been received and then deal with the order in the normal way. Well.. I would if I had needed to yet but no one has used it
Anyways its pretty cool.
404 Julien Verkest
Open Atrium - Intranät
kalbynet posted a photo:
Open Atrium is an intranet in a box that has group spaces to allow different teams to have their own conversations. It comes with six features - a blog, a wiki, a calendar, a to do list, a shoutbox, and a dashboard to manage it all.
Källa; openatrium.com/features
Drupal
kalbynet posted a photo:
Drupal är ett innehållshanteringssystem skrivet i programmeringsspråket PHP och släppt som fri programvara med öppen källkod under licensen GNU General Public License. Drupal är modulärt uppbyggt, vilket ökar flexibiliteten i systemet. Särskilt bra stöd och funktioner finns för så kallade 'communities'.
Källa: Wikipedia
Why I chose MODx over Drupal, Part One: Because I'm Lazy, Stubborn and Anti-Social
“I stereotype. It’s faster.”
- George Clooney (as Ryan Bingham), Up in the Air
MODx is sleek, sexy and clean.
Drupal is bloated, high-maintenance and a hot mess.
Okay, did that get your attention?
Now let me quickly admit that I have no business whatsoever making judgment statements like these about either MODx or Drupal, neither of which I’ve used enough to make such sweeping generalizations.
Bereft of any substantial personal experience on which to base an opinion, I have fallen back on certain prevailing stereotypes about MODx (positive ones) and Drupal (negative ones). Heck, I’m so lazy I even populated those links by doing Google searches to supplement the adjectives I had chosen. (Although I should note that this was all too easy to do, and that does say something).
So yes, I’m being unfair. I’m focusing on the CMS community’s consensus “best views” of MODx and “worst views” of Drupal. I could just as easily slant this in the opposite direction:
“Drupal is mature, powerful, and extremely popular.”
“MODx is poorly documented, feature-deficient, and sits alone in the cafeteria at lunchtime*.”
Okay that wasn’t quite as easy to do (especially the MODx part), but my point stands:
- I recognize that you can find anecdotal evidence to justify any conclusion you’ve jumped to
- I recognize that this often isn’t the right way to go about doing things
- I recognize that I’ve largely done this in my MODx-over-Drupal decision
Now that I’ve publicly confessed these sins, I think the next question becomes “why do those particular pro-MODx and anti-Drupal narratives appeal so much to me?” Here are a few answers to that:
- I like clean code. It just feels right.
- I like immediate rewards. I’m not a delayed-gratification sort of guy.
- I hate software that requires me to slog through tons of features that I have no interest in at the present moment in order to find what I’m really looking for.
- I strongly prefer writing my own solution (even when I know that a year later I’ll look at it and be shocked at how terribly I wrote it, and want to do it over again) to an off-the-shelf solution.
- I’d rather crawl across broken glass than spend the next six months learning how to use a content management system. I’ve invested years mastering HTML, CSS, JavaScript, JQuery and PHP. I really feel like that ought to be enough to get the job done.
- I have an innate distrust of any system that feels like an invasive species; so all-encompassing that its presence will henceforth dictate every decision about the direction of my website. Whether it is real or imagined, Drupal very much feels like that type of system to me.
- I love the feeling that I am getting in on something great before the rest of the world discovers it.
- The Drupal community scares me a little bit, both in their size and in their zeal.
Looking at that list, the only reason that seems remotely virtuous is the first one (and even that has pretentiousness written all over it). The rest of my reasons boil down to laziness, stubbornness, and sociopathy.
But hey, at least I have reasons, right?
————————————
.
.
.
*I couldn’t readily find a web link that supported this sentiment, which is basically the converse of the “Drupal is good because it has such a large community” argument: “MODx must not be as good, or else more people would be using it.” I guess this isn’t a widely held belief, probably because most Drupal users don’t spend much time trying to make a case against MODx. I guess I’ve only really heard this from the Drupal users in my office who were lobbying for their preferred CMS.
Ben's last wiki edit?
edmittance posted a photo:
After 3 years of dedicated wiki editing, Ben's a little bit tearful about moving onto a powerful multi-layered dynamic content management system. Or is that Stockholm Syndrome
PHP Software Engineer
Hi,
Greetings from Quscient!
We have openings for PHP Software Engineers
Experience – 2yrs – 3yrs
Location - Chennai
Mandatory:
PHP,Face book/API/Twitter
Experience with drupal / smarty / joomla
Mandatory:
MYSQL
Role: Senior Software Engineer
Resource
a) Should have very good communication skills
b) Should have good problem solving skills & analytical skills
c) Should have good process knowledge
d) Should posses strong DB knowledge
Thanks
Santhoshi.G
santhoshi.g@quscient.com
Open Atrium tips
kalbynet posted a photo:
Så här justerar du om en publik blogg/nyhet skall vara synlig på startsidan i Open Atrium.
Drupal 6.8
Webinar with Acquia on using Drupal to Meet the Open Government Directive
Webinar given with Acquia on how to use Drupal to meet Obama’s Open Government Directive… I start speaking about 20 minutes in; recording here.
Implementing the Open Government directive with Open Source Drupal: Seminar at US GSA's Web Manager University
The US General Services Administration invited me to DC to give a webinar about how we executed open government initiatives on NYSenate.gov using Drupal that closely mirror many of the requirements Federal Agencies now have to meet under Obama’s Open Government Directive. Listen to a recording of the webinar.
Dissection of NYSenate.gov at Do It With Drupal 2009
In December, I was invited down to New Orleans to break down how NYSenate.gov was built for an audience of eager Drupalistas and Drupalistas-to-be at Lullabot’s Do It With Drupal conference…
Drupal & Ubercart Flat Rate Shipping - Problems and Solutions
One of the biggest problems I have had with Ubercart has been to get a flat rate shipping cost that is added automatically to every order and that does not change whether 1 or 2 items are ordered.
(hmmmm, note to self – should I have it set so it increases after 2 items, so that the postage is higher for 3 or more items? – one for another day!)
What I wanted was a $6 postage charge to be added at the checkout. No shipping calculations and no problems if anyone forgets to click the button coz after all, if the postage is always a flat rate of $6 then there is no need to click the ‘calculate postage’ button.
My answer was very simple in the end but it took me ages to find it.
Here are the steps to go through -
Add your flat rate
Add a flat rate shipping method here admin/store/settings/quotes/methods/flatrate. I gave mine the title of New Zealand (this is what I see) and then the line item label of NZ flat rate (this is what people see at the checkout and means that later I should be able to add a rate for other countries too – but one thing at a time!)
I gave mine a base price and default shipping rate of both $6. (By the way I went to the post shop first and checked how much it would be to send a t-shirt within New Zealand and there is a pre-paid envelope that would actually take 2 t-shirts and its the same price no matter what the weight is. Thats why I want a fat rate.)
Check all configurations in the store
The next thing to do is to make sure that all the correct permissions are enabled and that the shipping quote module is correctly configured.
I will explain what I did, and in italics is how to get there, ie for me I put www.hardluck.co.nz/admin/store/etc…..
admin/store/settings/cart – make sure shipping quote is enabled in ‘cart panes’ in edit
admin/store/settings/checkout – make sure calculate shipping costs is enabled in ‘checkout panes’ in edit
admin/store/settings/orders – make sure that shipping quote is ticked in ‘order panes’ in edit
admin/store/settings/cart/quotes/edit – tick the box for ‘prevent the customer from completing an order if the shipping quote is not selected’
admin/store/products – go into each product and scroll down to shipping settings, in here there is a box to enter the flat shipping rate to over-ride the default. We don’t want to do that BUT it says (in my one anyway) ‘Enter -1 to revert to the default value’
This is not right. When I entered ‘-1’ it just took $1 off every time I calculated shipping! So in there I now enter ‘$0’ and it works fine.
Get the shipping rate to calculate automatically
There is a wee piece of java script here that some amazing person has written, which when downloaded and saved into sites/all/modules (by uploading it with your FTP client – like Filezilla) will make sure the shipping costs button is pressed automatically. I found it by searching thru the Ubercart forums which is a really good place to look if you are having problems coz there are bound to be other people who have the same ones!
So here is a screenshot of part of my checkout and this was just after I added the address. I didn’t need to do anymore, its just added shipping on itself.
Test it thoroughly and have someone else test it too!
This is like THE MOST important step of all! I had my site offline for maintenance when I did this work to it and I tested it a few times myself offline. I then put it online and got my mum to test it too because if there is something that will go wrong she will find it! I dunno how she does it but she can get even the simplest things wrong so I get her to check everything knowing that if she can work it then it must be ok.
I just thought tho that while it was online and she was testing then then theoretically someone else could have been on there too. I did have it checked by myself by that point and didn’t expect any visitors but I guess that could be a problem for some people. I wonder what other people do in this situation? Do they work with their site offline?
The next thing I need to do is get my computer sorted so I can work with more than one offline site.
Getting off the fence
I have known this would be coming for a long time.
I’m the web server admin for a relatively large state university system. Not for the campus websites (thank God), but for the system-wide administrative and policy pages.
I’m also responsible for how our staff publishes their web content.
In the decade or so that I’ve been here, that content has gotten increasingly disorganized and unmanageable, and our websites have become gradually less useful as a result.
So I’ve known for several years that one day I would need to deal with the whole “Content Management System” thing.
I’ve known for at least a couple years that my best bet was to find an open-source, PHP-based CMS. (I’ll get in to that some other time.)
And I’ve known for about a year that the decision really came down to MODx vs. Drupal. (Again, much more on this topic in the future.)
Truth be told, I pretty much knew all along that I’d inevitably choose MODx. (Later, I’ll explain it all later, ok?)
But there were the Drupal people. In my office.
(They’re everywhere, aren’t they, those Drupal people?)
They persistently made their case.
I listened and tried to keep an open mind.
They believed in their product, and in the personal investment they had made in it. They wanted me to just give it a chance.
I dragged my feet and refused to commit.
This went on for months. During this time, I should have been doing an exhaustive comparative analysis. I should have been doing requirements gathering. I should have immersed myself in books, installed both packages on test servers and flogged them senseless. I should have done the hard work of gathering the hard data to either support or refute my initial instinct to go with MODx over Drupal.
But I didn’t.
And then push came to shove, and there was NO MORE TIME. There were timeframes and deadlines, and I had to pull the trigger on a CMS RIGHT NOW.
So I did what I knew I was likely to do all along – I chose MODx.
Needless to say, the Drupal People were Very Concerned.
They voiced their concerns.
I lamented all of the Formal Documented Objective Comparative Analysis that I hadn’t done. I needed some data, some justification for how I had arrived at this Big Decision. What if the MODx project was a spectacular failure? How would my decision look then, especially in light of the Concerns of the Drupal People?
(Actually, no one but myself was requiring much in the way of a justification of the decision. But I am my biggest critic, after all, so I needed to make sure that my concerns about my decision were sufficiently addressed by me and for me. Me, me, me. I made the right decision… didn’t I?)
As I thought about it, I realized that my reasons for choosing MODx over Drupal, be they right or wrong reasons, were a pretty intriguing topic. I was seeing lots of archetypal patterns packed in there. Elegance vs. robustness. Simplicity vs. utility. Popularity and familiarity vs. obscurity and non-conformity.
David vs. Goliath.
Good vs. Evil.
(just kidding.)
(sort of.)
(No, really, I’m just kidding.)
Anyway, the point being that even though I had already MADE the decision, and was firmly in the MODx camp (and just-as-firmly NOT in the Drupal camp), I still found myself looking back at that fork in the road and thinking about the why of it all. It seemed like a really, really important thing to think about, to understand. Not just for *me*, but for those who might come along after me.
Therein lies the blog.
Where'd the time go? I've been documenting my AWS cloud work.
Since the last post I’ve been busy documenting some things I’ve been doing with AWS’s cloud services
- Elastic Cloud Computing (EC2)
- Simple Storage System (S3)
- Elastic Block Store (EBS)
- Relational Database System (RDS)
Also.. some of the AWS AMI’s I’d built in the past I’ve been converting to the new AWS EC2 capability called EBS Boot AMI’s.
Here’s how some of this looks using some graphics exported from the mindmap software I’m using to document.

Base Server architecture for other Cloud in a Box appliances
The Cloud in a Box (ciab) architecture starts with the ciab base server Amazon Machine Image (AMI). Other ciab appliances (Drupal, Joomla, cuteflow etc) will be based off of this base server initially then each will be saved as their own new AMI … one for each appliance.

ciab Appliance AMI's can be created by cloning the ciab base server, making changes, then creating the new Appliance AMI
Now some of the magic stuff happens… where we can use any of our ciab Appliance Server AMI’s to build an Auto-Loadbalancing, Auto-Scaling Cluster. This will utilize AWS’s Elastic Load Balancing (ELB), Auto-Scaling (AS) capabilities as well as utilize AWS’s Relational Database System (RDS) as a central SQL dbms.

ciab Appliance Cluster design for AWS

Automatically Scaling our ciab Application Appliance Server/Cluster
A tremendous amount of technical detail has been left out of these pictures but this presents the ciab architecture for AWS.
note: LAMP = Linux, Apache, MySql, PHP … a common configuration for most web servers today. Our Drupal, WordPress, Joomla, cuteFlow and Desktop as a Service (DaaS) all make use of this.
Dodavanje administrativnih ovlasti u Drupalu
Ovo je kratak tutorial koji opisuje kako nekom korisniku dodijeliti administrativne ovlasti u Drupal CMS-u. S obzirom da ta opcija ne postoji kada instalirate Drupal na vaše računalo, ovo je jedan od načina. Za početak logirajte se kao administrator koji je instalirao drupal. Nakon toga odaberite Administer, nakon toga User management i zatim Roles.
Tu bi trebale biti dvije opcije – anonymous user i authenticated user. To su zaključane opcije, ali se ovlasti mogu urediti po želji. Nama je cilj ovdje napraviti još jednu ulogu koju čemo nazvat administrator. Dakle, u prazan prostor napišemo administrator i nakon toga kliknemo na gumb Add role. Nakon što smo to napravili, kliknemo na edit permissions i tu odredimo ovlasti koje bismo dodijelili administratoru.
Kada smo gotovi s ovlastima, vraćamo se klikom na User management i tu odaberemo Users. Odaberite korisnika kojem želite dati ovlasti administratora. Prikazat će vam se stranica s imenom korisnika i kraj imena bi trebalo pisati view i edit. Odaberite edit i dole kod opcije Roles stavite kvačicu na administrator i nakon toga Save.
Došli smo do kraja. U slučaju problema tokom postavki koje smo radili, pogledajte više na http://drupal.org/ .
Drupal Webform module -- bare bones post-processing example
Problem
You have a Drupal 6.x form based on the webform module, and you want to write some PHP code to do something with each webform submission, where the feature you want is not already supported by the webform module.
Solution
First learn how to grab the webform submission so you can do some post-processing on the output. This example shows how to do it by editing the webform definition itself.
Rationale
This is a quick barebones example. This does nothing put print out a dump of the output variable. This is the first step you will need to do in order to process the submission.
Pitfalls
This is a simplistic example. You will need to know PHP and have programming experience. You should check that the application does not reliably support the feature you want first, before doing it yourself.
<?php
/**
* @file
* @verbatim
* main:
* - date: created="Wed Feb 03 12:06:15 2010"
* last: lastmod="Wed Feb 03 12:11:19 2010"
*
* dependencies: |
* Drupal 6.x
* Latest version of the webform module
*
* desc: |
* simple-postproc001a.php
*
* == Overview ==
* This shows a bare-bones stripped-down minimal example of how to
* post-process a Drupal webform submission.
*
* This example does nothing except do a 'dump' of the datastruct that gets
* returned by the webform module.
*
* == HOW TO ==
* To use this, edit the webform definition, and paste this code in the box:
* "Confirmation message or redirect URL"
* using the PHP filter.
*
* @endverbatim
*/
/// p__: init php
require_once(drupal_get_path('module', 'webform') ."/webform_submissions.inc");
/// p__: init vars
$self_qry = Array();
foreach ( explode('&', $_SERVER['QUERY_STRING'] ) as $tmpkey => $tmpval){
$vtemp = explode('=', $tmpval);
$self_qry[$vtemp[0]] = $vtemp[1];
}
$nid = '5';
$sid = $self_qry['sid'];
$submission = webform_get_submission($nid, $sid);
/// p__: show output
print('<pre>');
print_r($submission);
print('</pre>');
?>








