I live in Auckland NZ, and enjoy being a Dad, snowboarding and contributing to open source. more
I am seeking career opportunities.
My ideal client/employer would;
That is a big wish-list, but I am happy to compromise! :)
I have worked on Drupal projects for the last 7 years. Most of that time for amazing Drupal shops; CivicActions, Palantir.net, PreviousNext and others (see my CV). My skill, seniority and knowledge is highly valuable to Drupal companies & projects. Indeed I can get well compensated working with Drupal. And Drupal is a fantastic piece of software—a great choice for most websites. And most of all, Drupal has an incredible community of contributers and collaborators.
But it is time for me to move on;
I am currently freelancing until I find the right opportunity. So please contact me about short term projects too.
Originally posted at PreviousNext.com.au.
Scheduler module allows content editors to specify times for content to be published and/or unpublished. However it is not compatible with Workbench Moderation module, which allows content to have states like “draft” and “needs review” rather than just “published” or not.
Scheduler Workbench is a new module that integrates Workbench Moderation and Scheduler modules, so that content can be configured to become published or unpublished and be assigned a new moderation state at a date and time specified by the content editor.
PreviousNext recently built the same functionality for a client project using Rules & Rules Scheduler modules. This proved rather difficult to implement; Workbench Moderation also allows content with a published revision to have a more recent current revision in a “draft” or “review” state while content editors are working on it, and Rules does not provide sufficient transparency to easily understand & debug a number of tricky edge cases:
node_save()content with a published revision in an "asynchronous"
drupal_register_shutdown_function()-callback, which makes this a rather difficult edge case to handle. Additionally;
node.status = 1should have a row in
published = 1and vice versa. And
workbench_moderation_node_historyshould only have one row where
current = 1. And that should refer to the most recent revision.
The list goes on.
For a more recent project we found Scheduler Workbench module much easier to work with than a Rules-based implementation, since all of the functionality is clearly defined in unambiguous code, rather than abstracted through configuration.
PreviousNext contributed several patches to the module to fix some bugs, handle some of the edge cases and generally get the module more stable. All of these patches have been committed upstream already—thanks William Hurley (whurleyf1)!
Another patch for Scheduler is still in the queue and is required for Scheduler Workbench to function correctly. See #1660252 “Publishing transitions twice through draft” on drupal.org for more detail.
Another bonus about Scheduler and Scheduler Workbench modules is that it does not require a cron-management module like Elyisia Cron, as you can call Scheduler module's own cron callback without invoking Drupal's full cron. This is important because calling Drupal’s full cron too frequently causes performance issues, while calling it too infrequently means scheduled (un)publishing events are often “late”.
Scheduler Workbench can also be configured in such a way that it handles content "freshness" requirements. PreviousNext has found that many Australian government organisations regularly audit their content. In some cases content should even become unpublished if staff have not been marked the content as reviewed within about one year of it being published.
PreviousNext also implemented a Rules-based solution of content freshness for our client project. The default review period is set per content type, but the exact expiry date can be overridden on an individual content item’s “review by” date field. If a content item is not manually updated or “marked as reviewed”, it can be configured to become unpublished and marked as “needs review”, or just marked as “needs review” but left published. And the default value for this option is configurable per content type.
Scheduler and Scheduler Workbench modules can be configured to implement a significant portion of such “freshness” requirements.
Drupal Downunder 2012 is just 2 months away and session proposals close this Monday!
And tonnes of other great content, tutorials and sessions by other Drupalistas from Australia, New Zealand and beyond.
If you have been thinking about submitting a session proposal about that really interesting project, client or code you worked on recently, or have some special skill set you want to share with the Drupal community, get your ideas into words this weekend and submit a session proposal by this Monday 14 November to have it considered for the programme.
Finally don't forget that LCA (Linux.conf.au) is the week immediately following Drupal Downunder.
The Donald W. Reynolds Journalism Institute (RJI) is an organization that seeks out and tests innovations in journalism to find the best solutions for use in the real world.
Their new Palantir-developed Drupal website replaces a custom PHP website and two WordPress.com blogs. Part of our assignment involved migrating content from RJI's WordPress blogs into Drupal.
Initially, we intended to do this using the WordPress Import module. However WordPress Import is a stand-alone module that does not integrate with CCK fields, meaning that you cannot import WordPress post categories or authors as CCK text or node-reference fields. It also has limited options for importing files attached to WordPress posts.
To solve this problem, we created WordPress XML for Feeds, a module that allows Drupal's Feeds module to parse the WordPress export file (
WXR). It uses a map to create Drupal nodes (or other entities) in the same way that Feeds uses a map to create Drupal nodes from an RSS feed. This allows site developers to create an arbitrary map that tells Feeds module where and how to store the WordPress post's data in Drupal (e.g., as a CCK field, as a property on the Drupal node, or as some other entity).
There is currently severe flooding in Queensland Australia. An area twice the size of Texas is underwater. Entire homes are completely inundated. Bridges and cars have been washed away like toys. In Brisbane, airports are closed and the CBD has been closed down. There are at least 15 dead and more than 60 still missing.
QLDfloods.org is a Drupal 7 website set up by several members of the Australian Drupal community to provide information, track missing persons, find resources and people that need them (like beds), track damage and provide support. It was mentioned four times on CNN on Wednesday and multiple times on Australian national media.
The site builders are seeking help with Drupal 7 multiple-server configuration & infrastructure. Do you have expertise to help? Join
#Drupal-AU on IRC, speak up in g.d.o/australia or contact Ryan Cross directly.
Coincidentally, DrupalDownunder is just 9 days away in Brisbane city. At this stage the venue has not been damaged and everything is still on track. Keep an eye on DrupalDownunder.org/flood-update for any changes to that.
2010 has been a big year for the Drupal Association. Early in the year new members were brought on and the Board of Directors saw some changes. But most noteworthy is what the Drupal Association did for the Drupal community;
Drupal.org has a new look and feel. If you have not seen it (have you been under a rock!?) go check out Drupal.org right now!
It took a few years and many iterations and volunteers, and even that was not enough. This year the Drupal Association came to the party with funding to finish the job. Contracts went to tender and were won by Neil Drumm, Achieve Internet and 3281d Consulting.
Thank you to everyone who contributed to the Drupal.org redesign for all your hard work and effort to pull this off. And especially thank you to the Drupal Association for funding the last several miles that could not be covered by volunteers alone.
Drupal.org will never be the same again! Find out what is next for Drupal.org.
How could we ever forget? DrupalCon San Francisco, was epic. By all measures, it was the largest and most spectacular Drupal event yet.
The Drupal Association bootstrapped the funding and locked in critical contracts in order to secure the venue and other services. Many of the DrupalCon San Francisco committee members also serve the Drupal Association. The Drupal Association managed all the finances for the event and coordinated the local team and service providers with the rest of the Drupal community.
And that is just the beginning of what the Drupal Association did to make DrupalCon San Francisco a reality!
The Drupal Association recognized the urgency to update Drupal.org's version control system (currently CVS).
Drupal has an active, amazingly awesome and amiable community. One of the reasons for this, is that Drupal.org is our home. It has everything Drupal developers need, all in one place. However the last couple of years has seen a trend for contributions to be distributed elsewhere.
The Drupal Association realised that if Drupal.org did not offer modern version control and code-distribution tools, then Drupal.org would cease to be a central repository for contributed Drupal code. And that would ultimately be damaging to the community and the project.
So earlier this year, the Drupal Association hired Sam Boyer to work on detailed planning and foundation work in preparation for the migration of Drupal's gigantic CVS repository, including about 9000 contributed themes modules and other projects, to Git.
This work is underway and is making good progress, but has some way to go yet. Sam is leading the effort but the success of the project is highly dependent on volunteer effort too. You can get involved on g.d.o.
Early in the year, Treasurer Jacob Redding was hired as full-time General Manager for the Drupal Association. More recently, the Drupal Association hired Neil Kent as a Events Manager and Megan Sanicki as Sponsor Wrangler (Fundraising Manager).
Jacob does a wide range of tasks including managing financial assets and tasks, lawyers, accountants, contracts, bills, Drupal Association meetings and boot load of other tasks that arise.
Neil is working hard on a range of administrative, logistic and financial tasks related to DrupalCon Copenhagen 2010 and DrupalCon Chicago 2011, as well as trying to document it all and make DrupalCon production more sustainable, so that it is not so much work to reproduce DrupalCon in a new location every 6 months.
Megan is working on raising funds and managing relationships with past, future and potential sponsors, for both DrupalCon and other projects of the Drupal Association. She is also exploring new avenues of revenue.
These funds allow the Association to;
Megan's, Neil's and Jacob's responsibilities are critical to the health of the Drupal Association. Which is in turn, critical to the Drupal community and the resources they depend upon, such as Drupal.org and many other infrastructure services.
Through the careful management of Jacob Redding, the Drupal Association has managed to achieve all of this with less than 25% overhead. That is incredibly low for any non-profit or trade organisation.
DrupalCon Inc. received its 501c3 (not for profit) status, which allowed tens of thousands of dollars to be put right back into the Drupal community. This was a major process to work through the processes of the Internal Revenue Service agency of the US government.
Additionally, the Drupal Association;
Another important achievement of 2010 was updating our mission statement. We began this process in April in San Francisco at our full-day-long meeting, then iterated on it over the following months to reach the final wording.
The Drupal Association fosters and supports the Drupal software project, the community and its growth.
The Drupal Association does this by:
- Maintaining the hardware and software infrastructure of Drupal.org and other community sites.
- Empowering the Drupal community to participate in and contribute to the project.
- Protecting the GPL source code of the Drupal project and its community contributions.
- Protecting the Drupal project and community through legal work and advocacy.
- Organizing and promoting worldwide events.
- Communicating the benefits of the Drupal software.
The mission statement helps guide the Drupal Association in it's decision-making, and makes it clear to the community what the Drupal Association does and does not do.
Another of the main outcomes of the full-day-long meeting in San Francisco was a list of the five highest priority goals;
We completed items 1 and 4. Double yay!
We made excellent progress on item 2, including hiring an Events Manager and outsourcing website development to Growing Venture Solutions. However scaling the production of 3000-person bi-annual events is a large project that will take time and never be completely finished.
Similarly, item 5 is never really "done". Maintaining Drupal.org hardware, software and infrastructure is a never-ending job that volunteers work at tirelessly and with very little thanks from the hundreds of thousands of members and visitors to Drupal.org. The Drupal Association applauds their hard work and thanks them sincerely. The Drupal Association funds some of this work from time to time when volunteered time is not sufficient, and also pays for hardware and expenses required for the task.
As for item 3, the mission statement is one significant achievement towards this goal, but there is a lot more to it than that. Additionally, the Drupal Association has hired a consultant experienced with non-profit organisations to help us determine changes to structure that will help us achieve this goal. We are looking forward to report the changes that we decide to implement and how this will improve the efficiency of the Drupal Association to better serve the Drupal community.
Thank you for empowering the Drupal Association with your financial contributions and volunteer effort. You can continue to donate to the Drupal Association by;