November 8, 2009
Top Notch Themes released the first beta of Fusion recently, a base theme that works in conjunction with the Skinr module to fulfill their vision for the future of theming and theme configuration for Drupal. They even have a theme in development that takes full advantage of the new base theme called Acquia Prosper that pretties up your site for selling stuff with Ubercart... in my opinion, their best theme on d.o to date.
However, I'm not just writing to share the good news about their release. In conjunction with their work, I have a little fun development of my own to share.
Friday evening, I buckled down to do something I'd been needing to do for a while... I updated the UberDrupal installation profile to install and configure Acquia Prosper out of the box. With that profile, you can have a functioning Drupal store in no time flat that even integrates with the sharpest contributed theme for the task! There are several modules and themes you have to have on hand before running installation, and I'll be writing those up and presenting how to use it at DrupalCamp Austin and Do It With Drupal in the next month.
Those interested in the future of Ubercart on Drupal 7 and beyond may have heard of the Ubercore Initiative. This recent development on UberDrupal was motivated in part by our goals for d7uc of improving the "packaging" aspect of what Ubercart is. We're looking to address the split personality of Ubercart as a component module vs. a ready-to-use e-commerce application. Right now, the project suffers from a lack of focus in the component module space, having incomplete Views support (requiring even a separate project to get the job done) and little integration with other major contributed modules (product image support notwithstanding). In the application space, it is limited in that there's only so much you can do through hook_install() and hook_enable(). We're hoping a bit of clarification and planning can improve it in both these areas to make Drupal the best e-commerce platform on the web.
This post will be the start of a mini-series with aggregate thoughts gathered from my notebooks, d7uc conversations, and chats on how we can improve Ubercart in the future through d7uc. I'll try to keep them short and to the point and toss in some pretty pictures and diagrams. There's been a LOT of good brainstorming so far, and I can't wait to make these plans a reality.
The future is bright.
October 24, 2009
I've blogged before about what it means for a Christian to fear God, especially in conjunction with my thoughts on 1 Peter 1:17, "And if you call on him as Father who judges impartially according to each one's deeds, conduct yourselves with fear throughout the time of your exile." Christians differ on what it means to fear the Lord, and non-Christians generally question both the need and propriety of such a doctrine in respect to a loving God.
I found some unexpected wisdom to this point in a letter by Jonathan Edwards. The quote below comes from a discussion on Christian assurance in relation to the shortcomings of the first Great Awakening:
"And I am persuaded we shall generally be sensible, before long, that we run too fast when we endeavor by our positive determinations to banish all fears of damnation from the minds of men, though they may be true saints, if they are not such as are eminently humble and mortified, and (what the Apostle calls) "rooted and grounded in love" [Ephesians 3:17]. It seems to be running before the Spirit of God. God by his Spirit does not give assurance any other way, than by advancing these things in the soul. He does not wholly cast out fear, the legal principle, but by advancing and filling the soul full of love, the evangelical principle. When love is low in the true saints, they need the fear of hell to deter them from sin, and engage them to exactness in their walk, and stir them up to seek heaven. But when love is high, and the soul full of it, we don't need fear. And therefore a wise God has so ordered it that love and fear should rise and fall like the scales of a balance."
In other words, such fear isn't meant to last. It's a condescension, a means of preservation for the believer until he attains such a maturity in his love for God that he needs no other impetus to persevere in the faith to the end of his days.
John Piper recently posted another link to an Edwards quote that was foundational for him in the formulation of what he calls "Christian hedonism." He pulls a lot from Edwards, Lewis, and a myriad of other respected, historical theologians. This particular link is to a paragraph explaining the way that our delight in God is the climax of our glorifying God. Check it out and check out C.S. Lewis' sermon "The Weight of Glory" (attached) for more.
October 22, 2009
With high spirits and much excitement for the future, Lyle and I polished up and released Ubercart 2.0 today. Thanks to all those who took notice, and an even bigger thanks to the dozens of contributors who made the release a reality.
Features of the release should come as no surprise, as most people have been using Ubercart 2.x for some time based on the project's usage statistics and personal experience. In the final days, we did iron out issues related to file downloads, role promotions, product kits, and Views integration. We also paved the way for smoother European use in conjunction with the UC2 VAT project.
For those that are interested, continue reading for my reflections on the state of the Ubercart development process and code, including a community effort to realign both of these things on Drupal 7 with the Drupal 7 Ubercore Initiative.
The teaser... Ubercart, D7, Small core influence -> Ubercore (or, d7uc).
Basically, I believe we have a healthy dissatisfaction with the state of our code and our development process in general. We're lagging way behind the Drupal project itself, and we weren't able to accomplish all our goals for Ubercart on Drupal 6. Furthermore, as the project grows, it's become harder to maintain and even harder to arrive at an appropriate place where the core architectural issues can be addressed.
That's not to say I'm not happy with the project. Ubercart rocks! I just think we're equipped now with the knowledge, the momentum, and the tools to make it even better. Like... way better.
To that end, Lyle and I met with several other community members in San Francisco last week to chart a forward-thinking course for Ubercart on Drupal 7. I pitched the plans at BADCamp and got some great feedback. Over the next week or so, we'll be filling up the Ubercore website, http://d7uc.org, with revised notes and ideas from the sprint. We're looking for peer review from those intrigued by the following snippets from our plans for a more solid Ubercart on Drupal 7:
- Feature specification / roadmap - Ubercore is a planning initiative launched to bring intentionality to a development process that has been spontaneous and reactionary. Ubercart has matured, and it's time to look before we leap, evaluate future features against design documents, and have better communication with our users.
- Small core influence - The initiative is aiming for a small Ubercore, i.e. slimming down to the minimum systems without which we could not have a coherent e-commerce application or build out essential features. With improvements in Installation Profiles in D7 and on d.o, we're staking the future of Ubercart as an application on having a lean, mean, and agile core with great horizontal module integration. Fields, Views, Chaos Tools, Features... oh my!
- Strict development standards - Gone are the days of uncommented functions, inconsistent APIs, and random hooks. We're planning ahead for fully commented modules and classes, full SimpleTest coverage, and consistent module structures and APIs.
- Open scrum based development process - We have sprints planned up through Drupalcon San Francisco and are inviting everyone to join in. We're working out roles and goals and have a fair bit of planning to go, but we'll start out as awkward as ever with our first sprint planning meeting on Monday. The goal is better communication with and inclusion of community contributors.
There's a lot more to relate, like where and how we'll be building this out, what our core systems and classes will be, and more. Instead of typing everything twice, I'll just work harder to get our scribblings into the docs on d7uc.org and point those interested there. We're really excited about the initiative and hope to cast an exciting vision to our users and developers, too. If you're interested in pitching in, especially if you've been contributing to Ubercart for some time, please get in touch through the contact form so I can help you get plugged in.
Two parting shots...
- Timeline. We'll have an Ubercore 1.0 for Drupal 7 by Drupalcon San Francisco, ideally by March 31, 2010.
- Ubercart on D7. We didn't settle on any immediate forward port of Ubercart 2.x to D7 but are open to ideas in this thread. Work for now will happen through Ubercore on d.o to give us a fresh issue tracker and repository set aside for Ubercore development. Whatever happens, there will be a continuous upgrade path to Drupal 7, as the idea is for Ubercart to slide into the Installation Profile space by packaging the Ubercore with other essential non-core modules.
Alright, that's all I can fit in before I lose everyone reading this mega-post. More on d7uc as we can write it down... in the meantime, you can follow d7uc on Twitter and send up three cheers for progress!
October 2, 2009
Having recently participated in the blog tour for Andrew Peterson's North! Or Be Eaten, I was excited to get a chance to review another book with a similar target audience, Chuck Black's Sir Dalton and the Shadow Heart. The author and approach are completely different, but I still found the book to be an enjoyable read that I would recommend to my friends with boys in the 8 - 12 age range. I'm sure they'd dig it.
First, the good. Chuck Black does pull together a fine story in a world beset by evil with a gradually growing force of fighters for the truth known as Knights of the Prince. Young men and women both spend time training as knights to practice good works toward others in the kingdom and defense against the dark knights and their cronies roaming the land.
This particular story follows the training of a young knight named Dalton who is done a disservice by an inadequate trainer. His trainer really serves to weaken the faith of the knights in the universal goodness of their cause to fight for the King, and as a result the knights he sends out run into trouble almost immediately upon confronting the dark knights.
The main antagonist is a fellow named Lord Drox who plays on the knights' doubts and insecurities, not just about the goodness of their cause but even the entire existence of their King and his resurrected Prince. Dalton must face down these doubts in order to flee Drox and eventually return to rescue his brothers in arms who are held captive in a prison with no doors by their fears.
What I found a little disappointing was what one Amazon.com reviewer called his "heavy handed allegory." I don't have any way to judge its effectiveness with his target audience, so maybe a 12 year old boy wouldn't mind it. However, I found in particular his propensity to simply rearrange the letters in names and places to be contrived. You'll quickly recognize Sejus as Jesus, the Tisgri as the Tigris, Nedehaven as Eden, and possibly Arrethtrae as Earth / Terra. A little more subtle use of allegory might have better served the story so it could stand on its own as a fantasy tale and not just a means to the end of passing on a Bible lesson. The study guide in the back is a great tool, and it could easily have drawn attention to a more subtle allegory in the story itself.
That said, the lessons taught are timeless and have been enshrined in allegories at least since The Pilgrim's Progress. A mature Christian must have a faith that responds appropriately to doubts, fears, and the uneasiness of those who balk at Christian zeal. The examples of Koen, Carliss, and the reformed Dalton are worthy of imitation, and the swordplay makes that lesson more than a little palatable to young readers.