Sam and I fly out tomorrow, so this will be my last update from Thailand! As sad as it is to be leaving, I'm definitely looking forward to seeing friends in South Africa again, spending some more time in our place in Cape Town, and planning for a Bloody Huge Party in March ;-).
Thailand really is an amazing country with a culture I've really come to respect. Almost all of the Thai people I've met have been extremely friendly and accommodating. There's always the few that will try to take advantage of tourists but they're definitely in the minority. And really, why not try and take advantage of tourists if you've got the chance ;-).
In the last post I demonstrated creating a very basic install profile in Drupal 7. It was more or less a stripped down version of the standard profile with a few very minor additions.
I've been getting some great comments on my posts and one I wanted to note was from @david regarding the Profiler project. I've not had a chance to use it yet but it looks very promising. The profiler module provides an improved API and tools to vastly simplify what's necessary in writing your install profiles. While I would guess some more complex tasks still require you to use the raw Drupal API, this tool looks like it could give you a huge head start.
So, in the previous post, one of the additions I wanted to make but couldn't, was to create the default client user. The client name and email address will obviously differ on all sites we build. For this we need to add a new step in the install process to allow us to configure the client account prior to it's creation. All of the code from here on out will sit in our .profile file (recall that this is equivalent to a .module file, but for install profiles).
This is the second post in my series on install profiles. It covers the anatomy of an install profile and creating .install and .profile files. We create a simple brochure style install profile which is based on the standard D7 profile with a few customizations of my our own.
Yet another key component to the Drupal Platform is the install profile and it's another one that deserves a few posts to cover it adequately. The goal of this series of posts will be to build an install profile capable of creating a basic brochure-style website - more or less what WordPress's core functionality offers (ok, we'll be doing a bit less for this example ;-)).
Drupal 7 install profiles differ quite significantly from Drupal 6 install profiles so a lot of the material covered here won't necessarily apply if you're working on D6 only. There's already a lot of great documentation to help get you started. Drupal.org has an overview of install profiles that's worth taking a read through, for example. The Drupal documentation also covers all of the common hooks that you may want to use in your profile. But the best place, without question, is just reading through the Drupal core profile code (no, I'm not joking). Check out profiles/minimal, and profiles/standard folders that come with Drupal, particularly the .info, .profile, and the .install files.
Over the past couple years Drush has become an essential part of the Drupal site builder's toolkit. I personally use it daily and like a lot of developers now couldn't imagine building a site without it! (Well, I suppose I could imagine it, but I can also imagine building sites in Drupal 4.6, and it's not pretty ;) ).
Drush is one of those areas of Drupal that has been very well documented and I think it would be useful to compile what I feel are some of the more appropriate areas for site builders. There are many awesome webcasts, though I'm personally biased against them due to my forever inconsistent connection speeds while I'm traveling, so don't take it personally if I pass your webcast by :). Most of the existing documentation is written for D6, but fortunately Drush is Drupal version agnostic so all D6 documentation should work almost identically to D7.
Dev -> Stage -> Prod style of workflow for site building
If all you want to use features for is the second option, then this is perfectly acceptable. But when you start re-using features across multiple sites, you'll end up needing to fork the feature across each new site build. While you'll no longer have the overhead of creating a blog feature when doing a new site build, you may wish to add new components to your blog feature at some point. How to you push the updated feature across all sites if you've already forked the feature to accommodate necessary customizations?
I first heard about features at DrupalCon DC and while it seemed like a nice idea, I couldn't really see how it could be practical to someone who can already write their own modules. Of course, I thought exactly the same of views when I first learned of it too.
If you build Drupal sites and you've never built a feature before, it's about time you gave it a go! This post will walk you through what a feature is and how to go about building one. In a later post I'll show you how to make your feature re-usable and why it's important.
Building the Wedful platform took me about a year of pain, tears, blood, and triumph (not necessarily in that order) and since then I've been contacted by several people going through the same difficulties themselves with putting together their own Drupal platform. Wedful is designed specifically for couples planning their weddings to be able to easily launch a website and manage the details surrounding their weddings online, so we needed to be able to easily manage hundreds (hopefully tens of thousands someday) in a scalable manner. Some of the people I've spoken to have been looking to build niche products for the restaurant industry, hotel industry, and even one with a similar concept to Drupal Gardens.
We arrived in Thailand safe and sound almost exactly three weeks ago. Amazing how time flies! We spent our first week in Bangkok shopping for clothes (since we brought almost nothing here) and seeing parts of the city that we hadn't explored last time we were here. Bangkok is really an amazing city, insanely busy, with delicious street food everywhere, and amazing (and quite clean) public transport.
As per usual here, we were running on Thai time. The train was scheduled to leave at 17:05, it was now 18:05. It didn't matter though as we had nowhere to be. Our train was to arrive in the town of Surat Thani in southern Thailand at 4:30am but the first bus to the port didn't leave until 6:00. From there we'd hop on a 90 minute speed boat and then try to catch a taxi to the opposite side of the island and find a place to stay for the night. We'd use almost all modes of transport to get us from Bangkok to Koh Samui with the exception of flight.
I've never been very skilled at learning languages (well, non-computer languages). I "studied" French for seven years in elementary and high school, the end of which I had memorized a few words for different types of clothes and body parts, how to conjugate verbs, and how to ask to go to the toilet, s'il vous plait. After seven years I don't think I could speak a complete sentence. In elementary school I was "diagnosed" with having some kind of auditory processing problems which means that it supposedly takes my brain longer to turn raw sounds into meaning. In grade 5 I even got a detention for not being able to respond to a phrase from my teacher that I really should have known (I actually did know the answer, I was just too afraid to speak). But it was about this time that I completely gave up all hope of ever being able to learn a new language.
We were in Paris standing on a platform on some hill, overlooking the city below. The orange rooftops, small winding streets, churches and cathedrals poking up above everything else and the Eiffel tower off in the distance. I took out my camera to snap some shots and... no batteries! Scott Mac and I had just arrived in Europe, and I'd forgotten the batteries for my camera! This was a disaster. I frantically ran back to find a store that might sell some, they were just double A's I needed after all. But no stores sold them. No one had even heard of this mystery "double A" sized battery. They had completely different kinds of batteries in Europe and I wasn't going to be able to take any photos for our whole five week trip!! My heart sank... "how could I forget my batteries!!??".
As I climbed into the minivan I started to think that perhaps I should've taken Rok's advice and written "no kidney" across my stomach. I had all my things with me, so at least in the worst case I could easily grab it and make a run for it if things came to that. My stereotypes of eastern europeans (or at least people that speak an eastern european / russian sounding language) have long been ingrained in my mind from countless James Bond and other spy movies. They all must be somehow involved with either drug or people trafficking, and probably pack at least one hand gun too, right? Well, these were the thoughts that lasted for but a moment on my "bus" from Venice into Ljubjana, Slovenia until I realized just how friendly everyone was, regardless of the fact that I couldn't speak a word of Slovenian and they could only speak a few of English.
People got along just fine without them 20 years ago. Yet now you can't leave home without one!? Also, cellphones make things /too/ convenient. Makes people lazy.
I've heard this argument several times, and again recently. Ya, no one needs a cellphone, we use to get along fine without them. This definition of "need" also applies to:
2. The internet
9. Running water
Just because we /used/ to get along fine without technology X doesn't mean we don't "need" it now. Though we're not as dependant on cellphones as we are on electricity (yet) I would argue that we still need them (unless you define need as something you will actually die without, in which case, whatever). So please, spare everyone the i'm-superior-cause-i-didn't-use-to-have-a-cellphone argument next time.