March 2009

Weekly report: week ending March 1, 2009

March 1, 2009 - Categories: weekly

From last week:

I also:

Next week:

Reality check! Things are awesome

March 1, 2009 - Categories: gen-y, happy, life, reflection

Dan Pink shares this reality check from the comedian Louis CK:

It’s easy to take progress for granted. Amazing things become commonplace. It’s even easier for Generation Yers like me to ignore all the leaps and bounds. We grew up with the Internet – how crazy is that?

But there are so many opportunities to experience wonder and gratitude, even for simple things like going to the supermarket, taking transit, borrowing books from the library. People wonder why I’m so happy–well, that’s it! Everything is amazing. =)

And heck, I’m still profoundly thankful that someone figured out how to domesticate cats. <grin>

Everything is amazing. Are you happy?

Cookie recipe: Oatmeal (chocolate chip/raisin) cookies

March 1, 2009 - Categories: cookordie

This recipe is based on the Joy of Cooking Quick Oatmeal Cookies recipe (1st edition), but modified to make chewier cookies. Cookies

  1. Preheat oven to 350°F.
  2. Cream in a bowl:
    • 1 cup butter
    • 1 cup white sugar
    • 1 cup packed brown sugar
  3. Beat in another bowl, then combine with butter mixture until thoroughly mixed:
    • 2 eggs
    • 1 egg yolk
    • 2 teaspoons vanilla extract
    • 4 tablespoons milk
  4. Whisk in another bowl and gradually add to wet mixture:
    • 2 cups unsifted all-purpose flour
    • 1 teaspoon baking soda
    • 1 teaspoon baking powder
  • Gradually add two cups of rolled oats while mixing. Mix until everything is moistened. Batter doesn’t need to be smooth.
  • Use a teaspoon to drop cookies on a silicone-lined or greased-and-floured cookie sheet, two inches apart. Bake for 10-12 minutes.

    I usually make raisin and chocolate chip cookies from the same batch of dough, because J- doesn’t like chocolate and I don’t like raisins. (I bear a grudge towards raisins because raisin cookies often masquerade as chocolate chip ones. Disappointing!). Instead of mixing the raisins or chocolate chips into the cookie dough, I press raisins or chocolate chips into the cookies by hand. I usually make the raisin cookies first, since they’re not as popular as the chocolate chip ones. After I finish adding all the raisins, I can then manually add chocolate chips to each cookie, or dump chocolate chips into the cookie dough and mix it some more.

    Cookie photo © 2008 Pink Sherbet Photography Creative Commons Attribution License

    25 Tips for Totally Rocking Your Drupal Development Environment: pre-session notes

    March 1, 2009 - Categories: drupal, presentation

    When I beta-tested this talk with an IBM audience, I realized that there was no way in heck I could fit all the generally useful tips I wanted to share into the session, much less go into the joys of Eclipse, vi, or Emacs. (Especially Emacs. I could spend hours sharing what I’ve learned about Emacs.) Besides, editor choice is such a personal thing. So I’m not going to try to braindump all the cool things you can do with your development environment. Instead, find me at DrupalCon 2009 and pick my brain.

    In the meantime, here are some tips that most people might find useful.

    1. Meta tips
    2. Browser tips and plugins
    3. Drupal modules
    4. Source code and configuration management
    5. Automation and regression testing

    Meta tips

    1. Be lazy.

    We will encourage you to develop the three great virtues of a programmer: laziness, impatience, and hubris.

    Larry Wall, Programming Perl (1st edition), Oreilly and Associates

    Minimize your total effort and the total effort of your team. Learn more so that you spend less time looking. It’s amazing how much of a pay-off you can get from an hour or two just flipping through the Drupal API or the lists of Drupal modules – you’ll get a sense of where things are and what they’re called, and you’ll spend less time reinventing the wheel too. If you can invest thirty minutes in building a tool that’ll save you ten hours of work over the course of the project, do it.

    2. Learn from others.

    Join a users’ group. Read the Drupal forums. Hang out in #drupal, #drupal-support, and other channels on irc.freenode.net. You’ll learn so much from other people’s questions and answers, and even their approaches for figuring out what’s going on. And you’ll learn quite a lot by helping other people, too.

    3. Know your tools inside out.

    Read the documentation for your editor and development environment. Read the Drupal handbook and the API. Read the source code, even. Practice your editor’s shortcuts until they’ve been burned into your brain. Know your tools inside out, because they will save you lots of time and effort.

    4. Know what’s out there.

    One of Drupal’s strengths is the sheer number of third-party packages out there that you can just drop in and customize. Keep an eye out for interesting things. Browse through the available modules or view all the modules in a category. Subscribe to the Drupal Modules news feed in order to find out about new releases. Subscribe to Planet Drupal for interesting blogs. You’ll get lots of inspiration, too.

    5. Practice relentless improvement.

    At least once a week, invest some time in thinking about about what you’re doing and one small way you could do it even more effectively. Lather, rinse, repeat. As you incorporate more of these improvements into the way you work, you’ll free up more time and energy to work even better. Share your improvements with your coworkers or on your blog for even more benefit.

    Browser tips and plugins

    These tips are for Mozilla Firefox, because that’s what I use. =)

    6. Firebug

    Firebug: http://getfirebug.com/

    Probably the single most useful extension for web development. I love how you can examine your webpage structure and even change styles or HTML elements on the fly. The Javascript console is really handy for testing JQuery statements and other scripts.

    7. firefox -ProfileManager -no-remote

    This is how you start a separate session of Firefox, so you can test your site using, say, an admin account and a regular user account at the same time. Bonus: you can set up a test profile with very few add-ons, so that your add-ons don’t interfere with the site you’re testing.

    Other ways to accomplish this: run a separate browser, or use the Devel module to switch back and forth. Not as convenient, though.

    8. Tamper Data

    Tamper Data: https://addons.mozilla.org/en-US/firefox/addon/966

    The Tamper Data module is handy when you’re debugging form submits or page redirects, because you can step through the requests or change any of the submitted values.

    Alternative: The Devel module for Drupal lets you intercept redirects too.

    9. iMacros or another recorder

    iMacros: https://addons.mozilla.org/en-US/firefox/addon/3863

    Record and automate repetitive browser-based tasks or tests. Really handy for testing those pages where you have to log in, click on this link, click on that link, set this text field, and so on.

    10. Drupal for Firebug

    Drupal for Firebug: https://addons.mozilla.org/en-US/firefox/addon/8370

    Comes in two parts: a Firefox add-on and a Drupal module. This extends Firebug to give you all sorts of Drupal-related goodness, such as a message log, variable dumps for users, nodes, and forms, and data about your views. Reduces the need to insert var_dump into random parts of your code to figure out what’s going on.

    Drupal modules

    11. Admin Menu

    admin_menu: http://drupal.org/project/admin_menu

    One of the first modules I install on a Drupal project, this module adds a much more usable dynamic administration menu along the top of the page.

    12. Devel

    devel: http://drupal.org/project/devel

    Lots of goodies for developers and themers. I particularly like being able to view all the SQL queries run on the page, with slow queries highlighted. You may also want to set the SMTP library to Devel during testing, so that you can test e-mail without actually sending e-mail.

    13. SimpleTest

    simpletest: http://drupal.org/project/simpletest

    You can use SimpleTest to test your system both at the source code level and at the web page level – it includes a simulated browser, so you can send GET and POST requests and test whether the results contain text or things like that. Tests are tremendously handy for improving your source code quality. You can also use this to generate lots of test data – just write a test case that creates the test data, and then call the tests you want.

    14. Login Toboggan

    logintoboggan: http://drupal.org/project/logintoboggan

    Configure it to display a login form on every page. You’ll find this helpful when you’re testing various parts of your site, reloading the database from the backup, or generally doing things that involve logins and sessions. You might like it so much you’ll leave it on all the time. =)

    15. Xdebug

    Xdebug: http://www.xdebug.org/

    Not a Drupal module, but a very useful extension for PHP. Use either this or the Zend debugger to pretty-print nice stack traces and variables, or even step through your code. Your debugging life will get so much easier when you figure out how to integrate this with your development environment.

    Source code and configuration management

    Tip 0: Use a source code control system. If you don’t, you’re inviting disaster. Trust me, you _really_ want to be able to revert to code that’s known to work.

    16. Check in your entire Drupal source tree.

    Don’t get tempted to just check in the sites/ directory. You might need to touch others, you might need to upgrade core… Anyway, things could get messy. Just check it all in at the beginning, and your development and deployment will be easier.

    17. Organize your source code.

    Use different site subdirectories for multiple environments, and use subdirectories to organize your modules. This can help you keep your testing modules separate.

    I usually work with a local development environment (ex: local.example.com), a testing environment (ex: qa.example.com), and a production environment (ex: example.com). All of the modules that should be available to all those environments go in sites/all/modules. Sometimes I find it handy to put open source modules in sites/all/modules/oss/ and custom modules in sites/all/modules/custom, or another project-specific directory. Development modules that should never ever end up on the production server (such as simpletest and drush) go into sites/local.example.com/modules, and I use symlinks to make the modules available in other testing environments as well.

    18. Check in clean source for third-party modules.

    With Drupal’s hook and theme system, you can generally get away without directly modifying the source code of well-written modules. However, modules might not have the hooks you want. Before you make any modifications to third-party source code, make sure that a clean, unmodified copy is checked into your source tree. This makes it easier to upgrade the module later on: just get the difference between the current version and the last clean version, install the new version, and reapply the differences (correcting the patch when necessary). To be safe, commit the source code as soon as you unpack the module.

    If you started with an already-modified version, don’t worry. It’s not impossible to correct, just tedious. Get the difference between the modified source code and the clean source code, commit the clean source code, and then apply those differences.

    19. Test all upgrades against a copy of the production database.

    This is related to configuration and change management for a live site. When developing improvements to a site that’s already in production, you’ll often find yourself needing to set variables, enable new modules, and make other changes. Resist the temptation to make these changes by hand as part of a manual upgrade process. You don’t want to do that. You can experiment with making changes through the web-based interface for sure, but any behavior-related changes should (and can!) be written as update functions in the relevant .install files. This allows you to test the upgrades against a copy of the production database as part of your quality assurance process.

    CAVEAT: install functions are run in a certain order: alphabetically by module, and then numerically by update number. Keep that order in mind when writing update functions that interact with other modules that also have updates.

    For more about this, come to the panel on staging and deployment at DrupalCon 2009 – I’ll be there too!

    20. Manage your source code branches and track changes that need to be merged.

    Once your website is in production, you’ll find yourself working on bugfixes for the current site and new features for the next version. Save yourself pain and suffering by learning how to use your source code management system’s branching commands to maintain at least two branches of the source code tree – one for the development version, and one for the current released versions. Also look for tools to help you remember which changes you’ve applied to both branches. For example, the svnmerge tool is handy for managing Subversion tries. That way, you can fix bugs on the release branch and merge them into the development branch, so that the next version won’t have those bugs either.

    Automation and regression testing

    21. Use build tools

    You run lots of different commands as part of development. Refresh the database from the backup. Clear the cache. Enable development modules. Connect to the database. Instead of trying to remember or re-type all those commands, use a build tool like GNU Make or Apache Ant to simplify your work. For example, I have my Makefile set up so that no matter what project I’m currently working on or environment I’m currently working in, the following commands pick up project-specific settings and do the right thing:

    make mysql connect to the database
    make backup make a copy of the database
    make backup-partial make a partial copy of the database, omitting accesslog data and other unnecessary information
    make restore restore the database from the backup
    make dev-restore restore the database from the backup, and enable all the development modules
    make clearcache restore the database from the backup
    make tags restore the database from the backup
    make doc restore the database from the backup
    make test run all my project-specific tests

    You’ll enjoy not having to remember the command to type.

    22. Learn or make tools to save yourself work.

    This is an application of tip #1. A little scripting goes a long way. Learn how to write shell scripts and you can save yourself a lot of repetitive work. For example, my team members regularly need to deploy revisions of our source code to the QA testing server. In my team, I’m the most comfortable with Linux. Instead of doing all the deployments myself, I spent thirty minutes writing a script that lets any of the team members start a build. (For a while, I even integrated all the unit tests into it!). The whole system is a bubble-gum-and-string contraption involving PHP, a shell script, a Makefile, and SSH, but it works.

    23. Make the most of the Drupal shell (drush)

    drush: http://drupal.org/project/drush

    Drush totally rocks. Drush makes it easy to run Simpletest tests, SQL queries, even evaluate PHP statements within the Drupal context. I modified mine to make it easy to upgrade modules, too, which means that I can restore from a backup of the production database and run all the update functions within a minute. Learn how to use the different commands built into Drush, and add your own. You can save a lot of mouse clicks and time that way, and you’ll find it easier to automate things (including testing!) and integrate that into your workflow.

    24. SimpleTest

    Introduced this previously (#13), but it’s well worth repeating. If you implement other tips (such as #19: check all upgrades against a copy of the production database), your tests will become incredibly useful. Write lots of tests using SimpleTest and associate them with a group. Restore your copy of the database using the production backup. Run all of your updates. Use Drush to run the group of your project-related tests, or individual tests. A good test doesn’t display anything if the test passes. If everything passes, hooray! If a test has broken, find out what’s wrong–the code or the test–and fix it. Lather, rinse, repeat.

    25. … What’s your favorite tip?

    Leave it in the comments below, or share it with everyone during the DrupalCon 2009 session on Totally Rocking Your Development Environment, from 11:30 – 12:30 on on March 4 in the Trellon Room.

    Can you see why I’m going to have a hard time fitting all of that into the 60 minutes I have? ;) Particularly if I’m showing things. And I really don’t want to talk _all_ the time, because I’d love to hear people’s tips too. Come and join us on a whirlwind tour. Ask questions. Share your tips. It’ll be fun. =)

    Related sessions you might be interested in:

    Drupal Patterns: Managing and Automating Site Configurations: ChrisBryant, March 5, 3:00-4:00
    Staging and Deployment – A Panel Discussion: Greg Dunlap, Kathleen Murtagh, Shaun Haber, and me: March 5, 5:15-6:30
    Drush, Command Line Drupal Productivity: Moshe Weitzman and Owen Barton, March 5, 5:15-5:45  (conflict!)
    Drupal Process Management: Drew Gorton, March 6, 9:00-10:00

    Want to grow as a speaker? Look for inspiration!

    March 2, 2009 - Categories: speaking

    In a previous reflection on presentation and public speaking, I mentioned how I’m looking for inspiring role models who can deliver effective presentations in person and remotely.

    Role models are hugely important. Think about all the people you’ve heard speak, and then think of the ones you admired and who made an impact on you. Perhaps you had a particularly charismatic teacher. Maybe you’ve gone out of your way to find sources of inspiration, you’ll probably find it difficult to name more than a few. Religious evangelists and personal development speakers may have well-developed speaking skills, but it’s hard to think of how to translate those skills to the business or technical presentations you need to make.

    If you don’t know what a great speech sounds like and feels like, you’ll find it difficult to improve your skills and to help others improve theirs.

    If you don’t know what a great speech is like, you may be able to polish the mechanics of your delivery, but you’ll miss out on deeper opportunities to improve your public speaking. You can give a good speech without ums and ahs, with vocal variety and body language, and with good eye contact. A great speech, however, shows you how all those things fit together with great content, great organization, and all the other factors that make a speech extraordinary.

    If you don’t know what a great speech is like, you’ll be able to offer only surface suggestions to other people interested in improving their public speaking skills. You can help them eliminate the ums and ahs, encourage them to speak more slowly or quickly, and help them explore vocal variety. But you’ll find it difficult to recognize their key strengths and help them imagine how they could do it even better, and you’ll find it difficult to make specific suggestions that can help them transform the way they communicate.

    Why limit yourself to that, when you can find tons of inspiring speeches on the Net?

    The key resource I recommend to people who are interested in improving their speaking skills is the Technology, Entertainment and Design conference, which shares speeches from some of the most accomplished people in the world.

    You can also check YouTube and other sources for comedians, poets, politicians, and other people who make a living–and make a difference–with the spoken word.

    Go find yourself a few role models, and see what a difference it can make. =)

    Geek cooking: In search of vanilla

    March 3, 2009 - Categories: cookordie

    Vanilla beans

    Winter is a great time for baked goods. Or as we like to call them in this household, baked awesomes. Baked awesomes usually involve a splash of vanilla extract. Our supplies are dwindling. The 500ml bottle of Posa pure vanilla extract that W- brought back from Mexico a number of years ago is down to maybe four batches of cookies’ worth.

    W- and J- are maple syrup snobs (nothing but pure maple syrup, and even then, only particular kinds!), and I suspect we’re all that way about our vanilla extract, too. so I’m not even going to try to suggest the artificial vanilla extract readily available in supermarkets. Besides, I think it’s awesome that W- had a 500ml bottle of pure vanilla extract in his kitchen when most supermarkets only sell these tiny little bottles of vanilla (and fake, at that!).

    So W- was searching the Net for a good place to order pure vanilla extract, preferably from Mexico. Turns out this is a dicey proposition because a number of companies add coumarin to bottles of vanilla extract (Wikipedia:coumarin). It’s cheap and it tastes like vanilla. It also does Really Bad Things to your liver.

    Along the way, we discovered that you can make vanilla extract at home. It involves vanilla beans and vodka, neither of which we keep handy. We’re looking forward to experimenting with it, though.

    And just as an example of how amazing the Internet is: we found that recipe on an entire site dedicated to the vanilla bean – varieties, comparisons, recipes, and so on.

    I’ll keep you posted on the awesomeness. =)

    Vanilla beans photo © 2009 acfou Creative Commons Attribution License

    IRC backchannel log for Totally Rocking Your Development Environment, DrupalCon 2009

    March 5, 2009 - Categories: drupal

    IRC chat, thanks to Stephane Corlosquet

    This was for my Totally Rocking Your Drupal Development Environment talk at DrupalCon 2009. =)

    bryankennedy my favorite development environment requirement = electricity
    bryankennedy glad i got near the power strips
    jrglasgow Be Lazy!
    lyricnz Such infectious enthuiasm
    jrglasgow http://c2.com/cgi/wiki?LazinessImpatienceHubris
    danblah hah nice jrglasgow
    jackaponte is now known as palante_jack.
    jrglasgow http://api.drupal.org
    jrglasgow What? I only maintain 5 or 10 modules myself!
    danblah lol, she has to much time on her hands!
    jrglasgow Hey, I’v read about all the modules, at one point in time, then there just got to be too many.
    danblah so true nothing worst is when i start putting a module together then find that it was already done a few hours in
    tcconway drupalmodules.com rocks
    edeloso biggest problem is sorting out which is the most current and well developed for the specific domain
    jrglasgow danblah: I’ve done that as well
    Morbus what’s going on in the trellon room?
    alaken Going through all 4000+ modules is being lazy???
    lladnar1_ I guess you have to work hard to be lazy
    scor__ Morbus: Totally Rocking Your Development Environment
    scor__ http://dc2009.drupalcon.org/session/totally-rocking-your-development-environment
    bryankennedy It’s lazier than writing a module that’s already been developed.
    jrglasgow Morbus: we are discussing being lazy, the first of the 3 virtues of a programmer
    lladnar1_ is now known as lladnar1.
    scor__ bashing windows and IE
    Morbus thanks.
    jrglasgow scor__: that’s exactly why I can this week
    jrglasgow ^^ came
    vasi For the firefox profile manager on Mac OS X, here’s my way to do it: http://weblogs.mozillazine.org/asa/archives/2008/08/shortcut_to_lau.html#comment-2622794
    Lane did she use some term to describe “relentless improvement”? “kaisa” or something?
    Lane or did I just mishear?
    vasi kaizen i think
    scor__ vasi: thanks for sharing your tips – keep it coming!
    vasi http://en.wikipedia.org/wiki/Kaizen
    tcconway http://getfirebug.com/
    Lane vasi: thanks!
    vasi np
    vasi Safari and Chrome have “private mode”, that also lets you log in as two drupal users in one browser
    vasi (Firefox 3.1 should have that too)
    Lane tamper data sounds fun just in general, nevermind for development work
    jrglasgow When you hate clicking on things, TAB is your best friend
    jrglasgow Lane: Tamper Data is fun, especially when writing screen scraping scripts.
    tcconway any good iMacros tool for the Mac?
    vasi tcconway: i don’t think there’s anything free
    tcconway figures….
    danblah dude thats crazy
    danblah this ext sounds sick
    vasi wow, Drupal for firebug shall be my new god
    vasi worships
    danblah https://addons.mozilla.org/en-US/firefox/addon/8370
    tcconway I’m in LOVE http://drupal.org/project/drupalforfirebug
    japerry omg bouncy bouncty!
    bryankennedy isn’t selenium kinda like imacros?
    bryankennedy http://seleniumhq.org/projects/ide/
    danblah lol
    bryankennedy you can use that on a mac
    tcconway OW – PAIN
    lladnar1 Drupal for firebug rocks!
    tcconway amazing!
    tcconway I can’t live without AdminMenu
    japerry tcconway: same here.
    danblah admin menu ftw
    jrglasgow Instead of Admin Menu I use Simplemenu, SimpleMenu has the full Navigation Menu, not just the Admin menu http://drupal.org/project/simplemenu
    tcconway Sacha is adorable!
    tcconway (couldn’t resist)
    bryankennedy Login with email should be in core.
    jrglasgow bryankennedy: I agree, let’s make a push to get it there
    vasi any recommended debugger UI?
    jrglasgow tcconway: I agree
    vasi i’m using Komodo
    vasi but it’s non-idael
    vasi *ideal
    sceo XDebug = like Krumo?
    vasi (i find Eclipse’s debugger painful)
    japerry didn’t emacs die?
    alaken I’m using freeware Komodo edit
    sceo +1 for Komodo Edit
    vasi (and don’t even get me started on vi)
    japerry ducks
    bryankennedy jrglasgow – yeah, i knew I should have had a commitment to do some code before I suggested
    vasi Does the freeware Komodo have debug?
    jrglasgow +1 Komodo Edit
    bryankennedy xdebug is more than krumo
    jrglasgow vasi: no
    vasi sceo: no, not at all like krumo
    bryankennedy you can use krumo with xdebug
    vasi it lets you actually step through lines of code
    danblah w00t! shooting
    vasi as they execute
    jrglasgow +1 Git
    alaken Komodo edit – MUCH better with the Komodo Source Tree add-in
    Moonshine_ can be handy for xdebug also… https://addons.mozilla.org/en-US/firefox/addon/3960
    tcconway what? You have to check things in?!?!
    bryankennedy brining new drupal developers into SVN or CVS is a big learning hump….so useful though
    sceo puts xdebug on the list
    tcconway makes a note to checkin.
    edeloso I agree with the whole source tree… makes sure that version of core code is tied with the site…. upgrading a multisite hosting can be a nightmare
    tcconway works really well for us too.
    bryankennedy whole tree in svn is great, especially b/c most websites have SOME non-drupal pages or info in them somewhere
    sceo source code control + drupal — so many approaches. we battled this for hours and hours at my company… we don’t really still have a good method
    tcconway wait – you can have subdirectories in /sites/all/modules?
    vasi sceo: yeah, it’s hard
    vasi tcconway: yup
    bryankennedy we use sites/all/modules/dev and then svn ignore on trunk for dev modules
    tcconway wow.
    vasi bryankennedy: doesn’t that make your dev env hard to migrate?
    openprivacy check out drubuntu’s layout http://groups.drupal.org/node/6270
    tcconway bryankennedy: brilliant!
    bryankennedy vasi: nah, you just ignore it on trunk, not on the branches
    vasi bryankennedy: nice
    Lane so what’s a good VCS for a single-person shop with no VCS experience or even awareness?
    bryankennedy you have to do some manual moving around when you branch
    Lane well, some awareness.
    tcconway Lane: I’ve had good success with VisualSVN
    vasi Lane: i’d start with SVN
    Moonshine_ likes subversion as it’s time tested, lots of tools and not CVS
    nick_vh Finally got some connection, yeah!
    roginald nice
    vasi but git is nice, too….it just breaks your brain
    bryankennedy and svn has a free book
    bryankennedy http://svnbook.red-bean.com/
    roginald i started using svn for local with 0 knowledge and it seems fine
    bryankennedy You can start using svn in a day, it’ll take a year to learn really well.
    nick_vh we use unfuddle for our repository and issue tickets. Really nice tool
    openprivacy svn >> cvs
    bryankennedy But it’s easy to weather mistakes with SVN
    bryankennedy was kicked from the chat room by dcdc. (flood)
    tcconway svn ftw
    Lane thanks all
    scor__ bryankennedy: what happened?
    Lane that’s very helpful
    Moonshine_ Lane: what os for dev?
    bryankennedy posted too much
    bryankennedy ooops
    openprivacy ubuntu
    Lane linux (CentOS 5) and Leopard
    bryankennedy Sound like we could have an entire session on version control strategies for Drupal.
    scor__ bryankennedy: submit a BoF!
    sceo bryankennedy +1 yes and I would definitely go
    bryankennedy BoF?
    lladnar1 I still struggle with keeping database changes in svn
    edeloso anyone had luck with versioning and changes to the database for modules that use a content type built with CCK?
    lladnar1 Staging and deployment… I’ll be there
    Moonshine_ Lane: In Leopard I use Subversion that’s built right into Komodo and SCPlugin for the finder http://scplugin.tigris.org/
    Lane Moonshine_: Thanks.
    bryankennedy lladnar1: yeah totally
    alaken can anyone recommend a how-to for this branch mergins stuff
    lladnar1 Anyone have a good answer for database structures and confit settings?
    roginald for a recap of last year’s dev/stage/build talk there is a video of the session here: http://www.archive.org/details/DrupalconBoston2008-BestPracticesInDevelopmentEnvironmentsStaging
    bryankennedy lladnar1: this one helped me at one time – http://blog.daemon.com.au/go/blog-post/merging-with-subversion-and-eclipse
    lyricnz what’s the link to Sacha’s pages again?
    lyricnz notes for this session, that is
    vasi i would LOVE a VCS BoF
    vasi btw, i recommend that people learn how to use the command-line for version control….
    bryankennedy make sure to svnignore your sites/default dir so you don’t put your DB pass in your version control
    msonnabaum yay bash
    openprivacy we rename settings.php to settings.inc and commit that to the SVN repos; then create a 2 line settings.php that includes settings.inc and sets the $db_url
    openprivacy you can also create any other local overrides into the settings.php file
    sceo http://dc2009.drupalcon.org/node/3974
    sceo http://dc2009.drupalcon.org/node/3810
    sceo ^^ any of those apply?
    vasi openprivacy: yeah, we do that too
    vasi we call it ‘settings-private.php’
    vasi and then we have tools that check if there’s a settings-private.php nearby, and will read it to autodetect the db/user/password
    vasi makes dump/restore much easier
    openprivacy since we do multisites for every project (Dev/QA/Live) I wrote a pushdb script that moves databases between them, changing all the appropriate values – doing dumps of the from and to DBs first
    tcconway what’s the tag?
    openprivacy it parses settings.php for the db_url
    tcconway vimpirator
    tcconway http://vimperator.org/trac/wiki/Vimperator
    nick_vh aegir
    vasi AEGIR
    vasi http://conkeror.org/
    tcconway http://groups.drupal.org/aegir-hosting-system
    nick_vh real nice tool for lot’s of sites
    tcconway geben
    vasi http://httpd.apache.org/docs/2.2/mod/mod_vhost_alias.html#virtualdocumentroot
    openprivacy I haven’t got geben working yet
    tcconway what’s her blog url?
    vasi we just have VirtualDocumentRoot /var/shared/sites/%-3/site/
    nick_vh unfuddle
    vasi and then you checkout a site inside /var/shared/sites/
    nick_vh www.unfuddle.com
    nick_vh really really good!
    lyricnz has script to upgrade modules between versions, when module is under SVN control – which determines local patches, makes upgrade, reapplies patches, does svn add/delete as required. Maybe that’s useful to someone
    japerry definitely good!
    vasi and it appears as blah.ourdomain.ca
    sceo http://sachachua.com/site/ I think
    vasi blog url: http://sachachua.com/wp/2009/03/01/25-tips-for-totally-rocking-your-drupal-development-environment-pre-session-notes/
    vasi basically with VirtualDocumentRoot, you don’t need vhost
    tcconway quote of the session: “Spaces, no tabs. Spaces, no tabs”
    vasi entab/detab \o/
    openprivacy coder will mark those
    lyricnz Sacha ftw
    tcconway agreed.
    msonnabaum haven’t tried Drush for running update.php, but here’s a kinda ghetto bash script I wrote to run it: http://colonqbang.com/content/automating-updatephp
    danblah w00t for ghetto bash cripts
    sceo1 is now known as sceo.
    ccalnan http://drupal.org/project/install_profile_api for those who want to know about install profile
    vasi does anybody use a local DNS?
    vasi i’ve been thinking of doing that for staging….so i can see what a site will look like with the final domain
    tcconway I *kinda* do…I take advantage of MAMP Pro’s local dnsin’
    vasi ah
    nick_vh http://krimson.be/en/debugging-drupal-6-using-xdebug
    nick_vh another handy url
    bryankennedy great session
    vasi who’s emailing the log?
    scor__ http://openspring.net/tip/script-for-dumping-your-drupal-database-by-reusing-settingsphp
    scor__ vasi: I will

    Totally Rocking Your Drupal Development Environment

    DrupalCon Day 1: Notes and Links from March 4, 2009

    March 5, 2009 - Categories: drupal

    Building APIs that Rock
    Jeff Eaton

    More than 400 people packed into the Acquia Room to hear Jeff Eaton talk about APIs, a surprising number considering the early 9:00 start. Jeff talked about the importance of designing a module so that other modules could use it through code instead of through the user interface. He gave a number of examples, including how Views is divided into the API and a module that adds a user interface on top of the API. Great stuff. Pay close attention to the deadly sins of APIs towards the end of the attention, where Jeff outlines common errors and how to avoid them.

    …and all of it was presented in a lively manner, with frequent interjections from a co-presenting puppet! Check it out.


    Keynote: Dries Buytaert talked about the history of Drupal and where it’s going. Highlights: Picture of Dries when he started Drupal, complete with sombrero and chess board.

    Liveblog
    Photoset


    Totally Rocking Your (Drupal) Development Environment
    Sacha Chua

    Around three hundred people attended my session on Totally Rocking Your Development Environment, which consisted of a 40-minute whirlwind tour of my favorite Drupal development tips, and a free-for-all session where people shared their awesome tips too. It was lots of fun! People told me that they enjoyed the energy AND they walked away with a couple of tips that could save them hours of effort and frustration. Hooray!

    Session description
    IRC backchannel log, Stephane Corlosquet
    Outline notes, Jeff Schuler (who did an excellent job at capturing audience tips, too!)
    Video, Alan Doucette

    Totally Rocking Your Development Environment – also covered mostly stuff I knew, but I did learn a few tips (and also learned a little from my next door neighbor. It was a great talk by an incredibly enthusiastic speaker. I can’t believe though, that she suggested using Makefiles for Drupal!

    DrupalconDC Report #1, Michelle Murrain


    Handling Asynchronous Data with Drupal
    Josh Koenig

    Josh Koenig gave a quick demo of how to use Drupal.behaviors to contextually modify webpages using Jquery. Using contexts allows you to make it easy to embed behavior (ex: node edit form) within other elements, like a thickbox.

    Session description
    Presentation and examples
    Video


    Advanced Theming Techniques
    Trevor Twining and Bevan Rudge

    This promised to be quite interesting, but it got derailed halfway through. =| I did pick up a few tips about using preprocess functions as much as possible instead of copying and pasting theme code to override things.

    Session description
    Video


    Business Analytics with Views
    Frank Febbraro, Irakli Nadareishvili

    Frank and Irakli demonstrated upcoming features that make it easy to summarize and graph data using views. You can configure this module to use the FlashCharts, AmCharts, or Google Charts engine. Interesting! =)

    Session description


    Boosting Our Raw Capacity to Provide Drupal Training
    Sean Effel, Allie Micka, Lee Hunter, and Alex Urevick-Ackelsberg

    Sean started by emphasizing that different learners have different skill levels, interests, and needs, and that by addressing those specific needs, we can help people not only use Drupal but also get ready to contribute to the community. He talked about his approach at drupaltherapy.com, where he coaches people on Drupal. He shared the core curriculum he’s figured out, but said that as people move beyond that, people have specialized needs.

    Barry talked about the lab hours that his company offers to people who have subscribed to the program. It’s a code clinic where the company helps developers and users with their systems. It’s not open to walk-ins from the street; people have an existing relationship with the company, and that allows the company to provide more targeted help. At the beginning of the session, everyone shares what questions they’re working on. They split up to work on the tasks individually or in small groups. At the end of the session, they wrap up by sharing what they learned, what they didn’t learn, and what kind of follow-up they have planned. The company shares post-session wrap-ups on their website.

    Alex talked about how his company strongly believes in training both their developers and salespeople to contribute back to the community. Their training is modeled on the Google Summer of Code, and new employees start off by working on some outstanding tasks. They also give their employees 20% time to contribute to Drupal, often on projects that the company selects. They find that community contribution is a great way to vet people both before and after they join the company.

    Lee posed two koans: If you document the software, you’re doing it wrong. Also, put the cart before the horse. He meant that a lot of documentation focuses on the features and the interface of the software instead of what the users want to do, and that writing the documentation before developing the system is a surprisingly effective way to work.

    Session description
    No video recording

    Presentation Zen: Visualization of the credit crisis

    March 5, 2009 - Categories: speaking

    Kudos to Garr Reynolds of Presentation Zen for finding this animation by Jonathan Jarvis that explains the credit crisis:

    The Crisis of Credit Visualized from Jonathan Jarvis on Vimeo.

    As W- says: “Nicely done! The credit crisis sucks, but this was nicely done.”

    Maybe someday I’ll learn how to tell stories using these techniques…

    Reinvesting

    March 8, 2009 - Categories: finance

    I’m looking forward to receiving the first bonus of my working life. =) Thinking about it, I’m reminded of a story my mom told us a number of times. It goes something like this like this:

    Two entrepreneurs each start off with a variety store. The first entrepreneur takes the profits from the business and reinvests practically everything back, growing the store into a larger one. The second entrepreneur takes the profits and buys a television.

    Business is good. The first entrepreneur takes the profits from the business and reinvests practically everything back, opening a new branch. The second entrepreneur grows the store a little bit, and then buys a video player.

    Business continues to do well. The first entrepreneur branches out into another business. The second entrepreneur grows the business a bit more, and gets a new car.

    The first entrepreneur works very hard, and soon owns a chain of stores. The second entrepreneur has a small business and a comfortable lifestyle.

    At the end of the day, who’s happier?

    My mom told us this story to show us several ways of thinking about business and money. She said that my dad is very much like the first entrepreneur, reinvesting as much money back into the business as possible. My mom and my dad agreed to do it that way. The business has certainly flourished.

    She also told us how she helps make sure that it’s not just about that way of doing business, though. Drawing a little bit of inspiration from that second entrepreneur, she made sure that our family gave ourselves permission to spend money to create memories and make life wonderful (and that’s not just by buying stuff). So we went backpacking across the US and Europe, and we had lots of adventures.

    A good life is a mix of both: reinvesting for growth, and enjoying the results.

    So part of my bonus will go to my retirement fund, because it’s good to plan ahead.

    Part of my bonus will go towards investing in myself, further developing the skills that helped me get that bonus in the first place.

    Part of my bonus will go to exploring life and sharing experiences with people.

    If you think of your life like a business, you can make more conscious decisions about how you spend money.

    Drupal gotchas: watch out for Views dependencies

    March 9, 2009 - Categories: drupal

    One of the downsides of writing all configuration changes as update functions in .install files is that you need to watch out for static or cached variables and module dependencies.

    For example, I just finished helping a teammate debug an elusive Views problem. The symptom: some views with blocks didn’t show up in the blocks table, even after a _block_rehash in the update function. Other views were there. If we ran the update function independently, all the blocks appeared in the blocks table. What was going on?

    hook_views_default_views is a great way to programmatically define views. By using the Views Export function, you can interactively create the view, then export the code so that you can make the view available on your production site without manual administration.

    However, if your new view requires a table ($view->requires) that doesn’t exist, then _views_get_default_views discards it. By the time you enable the module in another update function (and you’re using update functions to do things like that instead of manually enabling modules on your production site, right?), views_cache.inc has cached the (incomplete) views list and won’t recognize that the requirements are now available.

    To get around the view dependencies, comment out the $views->requires line. It’s a hack, but it’s probably better than hacking all the functions that cache data in static variables.

    Okay, even more impressed by Timebridge

    March 10, 2009 - Categories: kaizen

    I was happy with AgreeADate’s interface for calendar management, and now I’m even happier with TimeBridge. I like how TimeBridge automates the addition of tentative slots to my calendar (so that I can see what it might impact) and the cancellation of slots that conflict with confirmed appointments. That makes my calendar management process much simpler. =) Let’s see if it can handle the other use case of letting lots of people sign up for slots…

    Hooray for experimentation!

    Weekly review: Week ending March 8, 2009

    March 10, 2009 - Categories: weekly

    From last week:

    Also: I came home to a wonderful scavenger hunt! I’m such a lucky gal… =)

    My priorities for this week are:

    I’m also planning to attend a few events during the week, and to meet up with a number of people. Busy busy busy! And I still need to write up my notes from DrupalCon…

    Making a name for yourself: thinking out loud about my talk

    March 10, 2009 - Categories: career, connecting

    From 3 PM to 5 PM on March 14 (Saturday), I’ll be giving a talk at the Toronto College of Technology to a group of approximately 80 newcomers to Canada and people re-entering the IT field. With that in mind, I proposed the following talk:


    Make a Name for Yourself: Creating Opportunities in Difficult Times

    If you’re new to Canada, new to the workplace, or getting back into IT, you may find it difficult to find work unless you can show people why they should hire you over everyone else. How can you distinguish yourself? How can you reach out and connect with people? How can you find–or even create–opportunities that are just right for you? In this session, you’ll learn how you can develop your passion, improve your skills, and grow your network. Packed with tips for getting started and stories from real life, this talk can help you turbocharge your job search. Come prepared to introduce yourself to others, ask questions, and figure out how you can make a difference!


    I’m thinking out loud as I prepare my outline, because writing helps me think. =)

    When I plan a talk, I sometimes think of it as a box. The size of the box is dictated by how much time I have to deliver it. When I know what size that box is, I can plan what goes into the box. I want to put lots of value into the box, so that people get lots of value out of it. On one hand, I’m limited by how much time I have, what resources I have, and how much I know about the audience. On the other hand, I can create lots of value with that box by sharing it with many people, or by repackaging the components into larger or smaller boxes.

    In this case, my box is two hours big. It’s better to break those two hours up into two boxes than to treat it as one big box, because if I treated it as one big box, there would be lots of wasted space where people wouldn’t be able to focus well. If I plan it as two boxes, filling each with interesting things and giving people a short break in between boxes, people will get more value from the boxes.

    The two natural boxes in this session are:

    1. Self: figuring out what distinguishes you, building on it, and creating opportunities
    2. Others: reaching out, networking, and giving and receiving help

    Self

    As much as I would like to be able to share a magic formula for figuring out what to do with life, we can’t fit that into a one-hour box. It’s the work of a lifetime, really. But what tools or ideas can I put into this box to make it easier for people to take the next step? Here are some that might work:

    Oooh, I like 20-minute boxes.

    Others

    Many people find it difficult to network, especially if they’re new to a field and they don’t know anyone. I find it hard sometimes, too. =) Here’s what might help you too:

    WRAP UP: Fill out evaluation forms, follow up on blog post / slides, e-mail me, start a blog ;)…

    Hmm, that’s starting to look like an interesting session I’d love to attend myself… =)

    NEXT STEPS:
    - Refine the points and examples in each box, then hunt down illustrations
    - Plan worksheets

    Tungle for the win: kaizen and calendar management

    March 12, 2009 - Categories: kaizen

    Life just keeps getting better and better. =) So after I posted that quick note about Timebridge, Aidan Nulman nudged me about Tungle. I asked Ana to look into it, updating the calendar management process along the way. Based on a little exploration, I think Tungle wins in terms of calendar management. =) It can synchronize with my multiple Google Calendars, show all of my Google Contants on the left side, and automatically avoid double-booking. I’m in love. (TimeBridge, AgreeADate, I hope you’re listening – keep up with the competition!)

    So in the spirit of sharing, here’s our newly refined calendar management process. Ana even went to the trouble of adding screenshots – how cool is that?

    Setting up appointments:

    1. Login to http://www.tungle.com, see Accounts and Passwords section for the login information.
    2. The screenshot below shows an example of a personal Tungle Page. To set up an appointment, click on Schedule a meeting at the upper left side of the screen.
    3. Fill in the fields.
      1. Subject of the Event
      2. Choose from the dropdown list for the duration of the meeting/appointment.
      3. Meeting Location (Note unless specifically specified on Sacha’s meeting details, here are Sacha’s Venue Preferences:
        • Lunch during weekdays
          • Ichiriki – Japanese – 120 Bloor Street E, Toronto Hours: 11:45 – 2:30?
          • Camros Eatery (http://www.camroseatery.com/) – Vegan – Hours: M-F 11:30am to 7:30pm (no travel time necessary)
        • Weekends: Linux Caffe (http://www.linuxcaffe.ca) – 326 Harbord Street, Toronto. Hours: M-F: 7am to 11pm, Sat 10am to 11pm, Sun 10am to 5pm
      4. Click Add for every person added in the list of Invitees.
      5. The calendar on the lower part of the page is linked to Sacha’s Google Calendar so you will know which hours and days she is available. Highlight available times or as instructed by Sacha.
        Additional Information in selecting time:

        • Offer 3-5 choices, conflicts and double bookings will not be a problem with Tungle since it is synchronized with the Google Calendar.
          1. For in-person meetings, I prefer lunch (12:00 PM – 1:00 PM) or coffee/tea/hot chocolate (any time between 3:00 PM and 5:00 PM), preferably on a Thursday or Friday
          2. For phone meetings, I prefer calls on Saturday or Sunday (9:00 AM – 9:00 PM), preferring Saturday afternoon
        • Sacha’s Google Calendar will be automatically updated as soon as invitees send back their confirmations.
      6. Click the RIGHT arrow beside Step 1 of 3.
    4. Step 2 shows a summary of the tentative dates you are proposing to the invitees. Click on X if you have entered an incorrect entry and go back to Step 1. If the details are all correct, click on the RIGHT arrow button to proceed to Step 3.
    5. For personal message refer to instructions below. Then click PREVIEW.
      • For phone appointments, include the following segment in the Personal Message box:

        Times are in your current time zone by default. If the timezone is incorrect, use the “Change” link above the calendar.

        Sacha Chua’s contact information
        Skype ID: XXX
        Mobile number: XXX
        Work number: XXX
        E-mail: XXX

      • For in-person appointments, include the following segment in the Personal Message:

        Sacha Chua’s contact information
        Mobile number: XXX
        Work number: XXX
        E-mail: XXX

    6. Check meeting details. Send invitation.
    7. A confirmation box will be shown to you after sending invites. See screencap below. Close.

    Virtual assistance and a review of TimeSvr, ODesk

    March 13, 2009 - Categories: -Uncategorized

    I’m starting to get the hang of this delegation thing, and I like it.

    Jeff Widman pointed me to TimeSvr.com, a virtual assistance outsourcing service that’s priced much more affordably than similar services like AskSunday, GetFriday, and LongerDays. With a USD 69/month plan, you get unlimited 15-minute requests and up to 8 hours for complex tasks.

    I took advantage of their a free 3-day trial period to give them a whirl, sending them 10 small tasks I’d been meaning to work on.

    Tasks with clearly defined processes (approve Facebook friend requests except for those who found me through Friend Finder, request books from the library, post my checked-out books on LibraryThing and Shelfari) worked out pretty well. I may set up repeating tasks to take care of these things.

    Web research tasks had mixed results.
    When I asked them to find me a Linux-compatible black-and-white laser printer and scanner that could do both sheet-fed and flat-bed scanning, they recommended two Samsung printers available from FutureShop. One of them didn’t do sheet-fed scanning, but the other was a pretty good deal, and we went out and picked it up the same day. (I’m very happy with my new Samsung SCX-4828 – it actually works!) When I asked them to find me that Firefox extension that adds numbered shortcuts to Google Search results, I got back a page that didn’t have anything to do with it. Your mileage may vary.

    How does this compare with the dedicated virtual assistants you can hire from oDesk or other services? I’m coming to similar conclusions as Sid Savara in his post Can Virtual Assistants Make Your More Productive? An Experiment, and a TimeSvr Review (with pretty diagrams!). TimeSvr’s 24/7 availability is a big bonus. Because of their focus on 15-minute tasks, I don’t feel nearly as guilty assigning them routine, well-defined tasks. On the other hand, I’m quite impressed by the initiative and personal development shown by one of the VAs I’ve hired off oDesk. I think web research tasks benefit from having someone build up background information and certain tasks benefit from processes that we develop, so I can lean towards asking her to do more of those kinds of things.

    I’ll continue with TimeSvr past the 3-day free trial to get a sense of what my small-task volume is like over a month. I’d already carved out a small portion of my budget for outsourcing experiments because I see it as valuable (and otherwise hard-to-get) education on delegation and management, and that + a little web research by Ana would fit in my budget nicely. After a month, I’ll review it to see whether it’s been a good fit, and what would make it even better.

    UPDATE: Added affiliate link to TimeSvr for better tracking. Disclosure: If you do sign up and you like it, I’ll get $10 from that, up to a maximum of $30. =)

    Making a Name for Yourself

    March 13, 2009 - Categories: career, connecting, presentation, talk

    The key points of my talk “Making a Name for Yourself” at the Toronto College of Technology on March 14, 2009 were:

    DEVELOP
    1. Build on your strengths. Identify your passions and skills inside and outside the classroom, and figure out how to get even better at them.
    2. Be flexible and create options. Look outside large IT companies, and even outside the IT industry.
    3. Change the game. Create new opportunities for yourself.

    CONNECT
    1. Focus on others. Look for opportunities to help other people.
    2. Make it easy to help you. Have a strong introduction (best-test-focus: start with a brief description of what you’re good at, a concrete example of how that benefited someone else, and a question that puts the focus back on the other person and how you can help them). Bring business cards. Carry a notebook and pen, or a PDA, or some other way to take notes. Have a web presence on social networks, or your own professional website/blog.
    3. Ask. Many people enjoy helping. Ask for help and reach out. Find mentors. Ask everyone.

    Here are some of the resources I mentioned:

    Toronto Geek Events calendar – for finding interesting tech-related events

    Love is the Killer App
    By Tim Sanders

    What Color is Your Parachute?
    By Richard Nelson Bolles
    Published by Ten Speed Press

    Make Your Contacts Count
    By Anne Baber, Lynne Waymon
    Published by AMACOM Div American Mgmt Assn, 2007

    How to Talk to Anyone
    By Leil Lowndes
    Published by McGraw Hill Professional, 2003

    DrupalCon 2009 Recap

    March 15, 2009 - Categories: drupal

    Quick notes on sessions I attended

    Building APIs that Rock
    By: Jeff Eaton
    Links: Slides, Video
    Talked about the importance of making it easier for other modules to use your code (not just users through the Web interface); showed an example of using hooks for ultimate flexibility. Key takeaway: Try building your module as an API, then layer a user interface on top of it (ex: Views). Also, puppets!

    Keynote: The State of Drupal
    By: Dries Buytaert
    Links:  Video , Text Outline
    Drupal community, code growing exponentially. Next steps: Connecting data

    Totally Rocking Your Development Environment
    By:  Sacha Chua
    Links:  Video, Installation Profile
    I had a lot of fun learning from people’s tips, too!

    Handling Asynchronous Data with Drupal
    By: Josh Koenig
    Links:  Video, PDF Presentation
    Key takeaway: Use Drupal.behaviors to attach contextualized Javascript code. Also, you can write data to files in order to make polling more efficient.

    Advanced Theming Techniques
    By: Trevor Twining
    Links: Video, Slideshow
    Most of the presentation was about how to define subthemes and extend something like Zen.

    Business Analytics with Views
    By: Irakli Nadareishvili
    Links: Video, Slideshow
    Ooh, pretty charts. Key takeaway: look into charts and views_charts modules for integration with Google Charts and other charting engines

    Boosting Our Raw Capacity to Provide Drupal Training
    By: Sean Effel
    Links: Training Models, Notes from Audience
    See my notes at http://sachachua.com/wp/2009/03/05/drupalcon-day-1-notes-and-links-from-march-4-2009/ . Key takeaway: Core training has lots of common ground, but then need to customize training for skill level / needs; group clinics/workshops handy

    Building Infrastructure You Can Scale, Monitor and Maintain
    By: David Strauss
    Links: Video
    Great slide breaking down flow of traffic to rough percentages. Key point: adding more components is easy (content delivery network, reverse proxy, etc.), but adding more than one component (ex: multiple database servers) is harder. Coherency issues, replication issues, etc. Try to minimize dynamic pages.

    When Efficiency and Manageability Matter, Drupal at Scale,
    By: Scott Mattoon
    Links: Slideshow, Video
    Left this session after a short while, as it seemed to be mostly about Sun tools.

    Powering Collaboration in a Distributed Enterprise

    By: Dan Karran
    Links: Video

    Interesting demo of a featureful Drupal site used on the intranet. Check out their auto-saved drafts.

    Drupal Patterns: Managing and Automating Site Configurations
    By: Chris Bryant
    Links: Slideshow, Video
    Patterns allow you to bring in groups of functionality. Interesting: can publish and share patterns. No support for change management yet.

    Staging and Deployment – A Panel Discussion
    By: Greg Dunlap
    Links: Video
    Deploy and db_scripts look interesting. Also, I promised to upload my .install file snippets…

    Why I Hate Drupal
    By: James Walker
    Links: Video
    Good stuff. Interesting contrast to kumbaya keynote: contrast of Drupal’s growth with Sharepoint, WordPress, and Joomla.

    Advanced Drupal Security
    By: Neil Drumm
    Links: Video
    Went through key parts of Drupal security handbook. My takeaway: use session_save_session(FALSE); when changing global $user;

    Selling Drupal Services
    By: Neil Giarratana
    Links: Video, Slideshow
    Lots of tips about the business side of it. Key takeaway: RFP process is inefficient; try partnering up with agencies instead, so you can build on relationships

    Project Management For Fun and Profit
    By: Crystal Williams
    Links: Video
    Not much new here if you’ve managed or worked on projects before

    How do Drupal, Joomla! and WordPress Stack Up?
    By: Amy Stephen
    Links: Video
    Didn’t go into an in-depth technical comparison / benchmarking

    Token: The Little API That Could
    By: Greg Knaddison
    Links: Video
    Walked through how Token module works, how to implement your own tokens

    Sessions I wish I also attended

    JQuery, Dmitri Gaskin Links: Video
    Drupal and the Geospatial Web, Jeff Miccolis Links: Video, Notes from Audience
    Optimizing your LAMP stack for Drupal, Eric Mandel Links: None
    Learning jQuery UI, Richard Worth Links: Video
    SEO & Drupal: Search Engine Optimization Tips, Tricks and Best Practices, Gregory Heller Links: PDF Slideshow, Video
    Building advanced social networks at a large US University, Kyle Mathews Links: Slideshow, Video
    Building a Frankenstein monster and how to maintain it, mortendk Links: Video
    Front End Performance – Make Your Website Lightning Fast, Konstantin Käfer Links: Video
    Communicating Data Online: Data Visualizations and Open Data, Eric Gundersen Links: Video
    Project Flow and Tracker: From business objects and user stories to test-driven Drupal based website application, Victor Kane Links: PDF within page
    Scaling Drupal using Amazon Web Services (AWS), Frank Febrarro Links: Video , Slideshow
    Drupal Process Management, Drew Gorton Links: Video
    The Business of Open Source, Liza Kindred Links: Video
    Quality Assurance and the Drupal Development Process, Fen Labalme Links: Video, Slideshow
    Inside Drupal Caching: From Static Variables to Memcache, John VanDyk Links: Video

    Note: Thanks to Ana Macatiag for all these handy links! =)

    Tasks I’ve tried delegating to TimeSvr so far

    March 16, 2009 - Categories: -Uncategorized

    Things that I think would fit into 15 minutes

    To improve this:

    Still looking for an awesome calendar management system

    March 17, 2009 - Categories: kaizen

    One of the things I do very badly is manage appointments. I can manage tasks.  I can manage time. But every so often, I write down the wrong times for a meeting, get frustrated by scheduling, or double-book myself. This is all the more embarrassing because people are involved. This should be something I can fix.

    That’s why I spend a lot of my time thinking about how to manage my calendar and how to do it better. Web-based systems like Tungle, TimeBridge, and AgreeADate make it easy to find available times for meetings, although I still haven’t found the perfect tool.

    Every service is just a little bit off. My ideal calendar management system would make it easy for me to propose meeting times, and reschedule them to a something else comes up. I’d also love to be able to give people a link to my schedule, so that they can sign themselves up. Maybe someday. I can outsource the fiddly things to a virtual assistant, but it makes sense that this stuff should be mostly automated. For the peace of mind of knowing my calendar’s correct, I’d pay maybe $5-10 a month…

    UPDATE: TimeBridge handles most of my cases, so I guess I’ll go with that.

    Weekly review: Week ending March 15, 2009

    March 17, 2009 - Categories: weekly

    From last week:

    Also:

    This week:

    Monthly review: February 2009

    March 17, 2009 - Categories: monthly

    The key thing I learned in February 2009 is that delegation is something I can learn and something I can benefit from. I hired a number of virtual assistants through oDesk, including a couple of computer teachers and an assistant who’s my age. In the process of delegating tasks, I learned more about the processes I use and how to make them better. I look forward to continuing to explore this.

    Related posts:

    I also spent some time thinking about presentations. I gave a lecture on Enterprise 2.0 and knowledge management at the Schulich School of Business:

    and I spent some time thinking about the use of a backchannel, what could help me become a better presenter, and how to get better at meetings.

    I learned a little bit about events, too: Lessons from LifeCamp and plans for the next one. I also volunteered to help organize DrupalCampToronto.

    At work, I developed custom code for the Drupal-based Transition2 system, improving its content management and community features.

    In March, I plan to:

    Five favorite Firefox add-ons for virtual assistants

    March 17, 2009 - Categories: kaizen, productivity

    I like helping people become more productive, particularly if that means they’ll get my work done faster or more effectively. ;) With that in mind, here’s a set of five awesome Firefox add-ons to help virtual assistants and other people who do lots of Web research for other people:

    This assumes that you already have all the usual good stuff, like Greasemonkey. And if you don’t have Greasemonkey yet, you should get it, and then you should check out UserScripts.org for lots of useful time-saving scripts.

    What are your favorite tools?

    Improving my talk management process

    March 18, 2009 - Categories: happy, kaizen, presentation, speaking

    Now that I’m reasonably happy with managing my calendar with a combination of virtual assistance and tools like TimeBridge, I’d like to improve my talk management system. I give lots of talks, and I’d love to scale up to do even more, and to do them even more effectively.

    Here are the key tasks I might be able to outsource:

    If I can get parts or all of this process in place, the results will be:

    Networking outside the firewall

    March 19, 2009 - Categories: connecting, speaking

    In a large company like IBM, it’s easy to forget to interact with the outside world. The internal network of people is rich and varied. We have our own conferences, our own mailing lists, our own communities. If you’re not paying attention, you can easily forget about what’s going on outside.

    But reaching out to people outside the organization is important, because it will let you:

    Anna Dreyzin invited me to speak at a breakfast meeting for a women’s networking group at IBM. While thinking out loud about what new tips I can share in 10-15 minutes, I realized that I can share a very different approach to networking that can result in a lot of benefits for less effort.

    You see, traditional networking is active. You reach out to other people, cultivating your network with frequent contact through e-mail, coffee, shared lunches, and other activities. You can build strong relationships, but this takes time.

    Active networking can be hard to fit into your schedule. When you have a full load of work, it’s difficult to take time to meet people for coffee or lunch. When you’re daunted by the number of messages in your inbox, you probably won’t feel like sending off another note to keep in touch. When you’re busy working inside an organization, you might not remember to make an effort to connect with people outside it.

    Active networking doesn’t scale. With traditional networking, you tend to be limited to people you’ve met or with whom you’ve had direct contact. You can grow your network by attending events, getting referrals, and working on projects with different groups of people, but your network grows slowly.

    In contrast, I would characterize my way of networking as mostly passive networking. Instead of actively reaching out to people, I focus on making it easier for people to keep in touch with me, and to giving them reasons for doing so.

    This is all because I’m shy and I have such a hard time starting conversations or calling people on the phone.
    When I started giving conference presentations in my third year at university, I realized that it was much easier to connect with more people if I gave them reasons to start the conversation. When I started blogging at around the same time, I learned that blogging was an even better way to reach out. And when social networking sites like LinkedIn came on the scene, I found them to be a great way to keep track of my growing network.

    By combining social networking, blogging, and public speaking, I can invest a little time and effort into sharing what I’m learning, reach far more people than I would have the time or courage to approach myself, and build relationships I would not have expected to have. People find my website through search engines, the business cards I hand out, and the web address in my e-mail signature. If I provide enough value, maybe they’ll subscribe to keep up to date with what I’m learning. I also occasionally receive e-mail and requests from outside the organization, which reminds me that yes, there is a world out there. ;) A little bit of effort, a whole lot of reward.

    So let’s flip networking around. If you find it difficult to reach out to people, make it easier for them to reach out to you. Here’s how to do it:

    Drupal Gotcha: Watch out for $user during update.php

    March 19, 2009 - Categories: drupal

    If you disable access-checking on your update.php, there’s no guarantee that the update script will be run with the superuser as the active user. This could mess up your update functions that delete nodes or use other access permissions.

    To fix this, temporarily assume the identity of the superuser in the update functions that need it:

    global $user;
    $old_user = $user;
    $user = user_load(array('uid' => 1));
    $session = session_save_session();
    session_save_session(FALSE);
    

    and then restore the old user afterwards:

    $user = $old_user;
    session_save_session($session);
    

    Five reasons why I’m experimenting with outsourcing to virtual assistants

    March 21, 2009 - Categories: kaizen, management

    My experiments with outsourcing amuse some people and raise questions for others. It’s difficult for most people (including me!) to give up control and delegate tasks to other people. We’re not used to it, and we don’t have many opportunities to explore it.

    A friend of mine asked me recently if I found that I needed to have many of my outsourced tasks re-done. Out of the 58 tasks I’ve reviewed so far, I needed to ask for four tasks to be completely re-done (or I found it easier to just fix it myself), and I had minor quibbles about the way six were done. That’s 7% redoing, 10% minor tweaking, and 83% totally happy with the results. Not bad, and the ratio will get even better as I learn more about delegation and as I make more of my processes explicit. I’m also very happy with the work I’ve delegated to my Philippine-based virtual assistants, which tends to be more about research or ongoing work.

    As I reflected on my outsourcing experiment, I realized that I’m doing it for a number of reasons that might not be immediately obvious to people.

    1. I can optimize my energy, kickstart tasks, and enjoy a little leverage on time.

    The time savings are obvious to people, but for me, energy is the biggest factor here. There are some tasks that I don’t particularly enjoy doing, and some tasks I feel almost anxious about doing. Being able to delegate those tasks to someone else lets me focus on what I’m passionate about and minimizes interruptions when I’m concentrating. It’s also helpful for kickstarting tasks that I’ve been procrastinating. Someone else provides the initial energy – looking up numbers, putting together some links – and then I can work on improving the results. This is similar to the way first drafts are hard to put together, but easy to revise. And I can spend five minutes delegating tasks that would’ve taken me an hour to do, giving me just a little leverage on my time.

    2. I can learn to scale even further.

    We all have the same amount of time each day. If I want to make the most difference I can, I’ll need to either become a solo genius (think Tesla) or learn how to harness the power of others (think Edison). There’s a limit to how productive I can be by myself, and besides, I enjoy learning from other people in the process of working with them. So, if I learn how to tap the strengths of other people, I can scale up beyond the limits of my own time and energy.

    3. I can refine my processes.

    As I try to delegate more and more processes, I find myself describing them and reflecting on how to do them more effectively. This helps me be more productive, it helps my assistants be more productive, and it helps other people be more productive, too.

    4. I can learn how to delegate in a safe environment.

    If I’ll need to learn how to delegate in order to accomplish a bigger difference, I might as well learn how to do so in a low-risk setting. Many people learn about management when they become managers, which is difficult because they’re held accountable for real business goals. Outsourcing to virtual assistants lets me learn about delegation and management in a setting that simplifies many of the factors (I don’t have to worry about HR too much, for example) and lets me experiment with low-risk tasks. If I incorrectly specify a task, I’m only risking some Web research, not a big project. Think of this as an MBA on steroids, because even in an MBA program, you don’t really delegate tasks to your classmates or hold yourself responsible for making sure things get done. ;)

    It’s like programming, too. I’m good at giving computers specific instructions to get the result I want, and I enjoy breaking problems down and coming up with solutions. I’m also good at understanding complex systems and holding them in my head, where I might not remember all the details but I’ll remember the relationships between components and I can figure out how to build something so that it blends in with existing structures and processes. What if I can get better at giving people specific instructions, and holding those complex systems in my head too? And just like programming, I won’t be able to do it well right away. I needed to write a lot of wrong programs (unintentionally, of course!) in order to get better at debugging them and learn about common pitfalls. As I learn more about delegation, I’m sure I’ll make mistakes–but that’s all part of the learning experience.

    5. I can develop characteristics of leadership.

    This brings to mind two interesting points from books I’ve recently read. One of the insights in Managing with Power that I found surprising can be found on page 73 and 74:

    Not only do we overattribute power to personal characteristics, but often the characteristics we believe to be sources of power are almost plausibly the consequences of power instead.

    Without, for the moment, denying that these characteristics are associated with being powerful and politically effective, consider the possibility that at least some of them result from the experience of being in power. Are we likely to be more articulate and poised when we are more powerful? Are we likely to be more popular? Isn’t it plausible that power causes us to be extroverted, as much as extroversion makes us powerful? Aren’t more powerful and politically effetive people likely to be perceived as more competent?

    Jeffrey Pfeffer, Managing with Power
    (thanks to Ian Garmaise for the recommendation; it’s an interesting book, well worth a read)

    Now combine that thought with the thesis of Bringing Out the Best in Others (Thomas K. Connellan), which is that firstborns are statistically overrepresented among leaders due to a combination of high expectations, early accountabilitiy, and good feedback. That makes sense. Older kids are often asked to take care of younger kids, and so on. (Thanks to W- for checking that book out for me from the library!)

    I’m the youngest of three sisters, so I never needed to take responsibility for my siblings, and they certainly wouldn’t hear of me delegating anything to them. ;) I don’t need to wait for anyone to give me authority so that I can learn how to delegate, though. I can invest time and money into learning that myself, so that I can learn how to build bigger things in the future. =) The more I practice, perhaps the more confident I’ll be, the more my analytical and communication skills will improve–which could lead to more opportunities to practice, and so on.

    So it’s not just about saving five minutes here and there, or helping redistribute resources to developing countries (although that’s part of the reason why I’ve hired some virtual assistants from the Philippines). It’s all part of an Evil Plan. I mean an Awesome Plan. ;)

    Weekly review: Week ending March 22, 2009

    March 22, 2009 - Categories: weekly

    From last week:

    Also:

    Next week:

    Wake up calls

    March 23, 2009 - Categories: -Uncategorized

    I’m beginning to rather like wake-up calls.

    I set up a recurring task in Timesvr to have someone call me at 6:30 every morning with an inspirational quote, the day’s weather, upcoming appointments, and a wish for a great day. This turns out to be surprisingly useful because:

    As a result of getting up earlier and with more energy:

    What would the wake-up call even better?

    Hmm… =D

    (Disclaimer: Timesvr link above is an affiliate link. I figure that if I’m going to advertise them for free because I like the service, I might as well get that tracked. Who knows, it might get me better service, or even a credit someday. ;) )

    Outsourcing processes: Wake-up call

    March 23, 2009 - Categories: process

    Here’s my process for my wake-up call:

    Every day, at the wake-up time I specified, please:

    1. Go to start.sachachua.com and sign in.
    2. Sign on to the various boxes as needed.
    3. Call me on my cellphone.
    4. Greet me good morning, tell me the quote of the day and the word of the day, and the weather for today (weather description (sunny? clouds? rain? snow), and both high and low temperatures.
    5. Tell me about my appointments for today.
    6. Tell me about my tasks for the day, and ask if there’s anything else I’d like to add. If so, create new tasks.
    7. Tell me the word for the day and its definition.
    8. Go to http://www.wgz.org/chromatic/projects/microfiction/ and read me the latest assignment. E-mail the assignment to me as well.
    9. Wish me a great day!

    Drupal tip: Test mail sending with Devel

    March 23, 2009 - Categories: drupal

    If you don’t want to send lots of mail to your users when you’re testing your site, change the Devel module’s SMTP Library setting to “Log Only”. Then you can check your log to see all the mail that would’ve been sent. Handy!

    To enable this only on your testing server, add the following to that domain’s settings.php:

    $conf['smtp_library'] = drupal_get_filename('module', 'devel');

    How to do a lot

    March 24, 2009 - Categories: career, life, productivity, reflection

    People often ask me how I get so much done. It gets almost funny, even: some people seem to think I’m somebody special, to which one of my friends rightly says: “I hate to break it to you people, but she is A HUMAN.” (warning: language)

    I don’t think I do extraordinary things, and I always emphasize that anyone can do what I do. It might take time, and you might find that your talents lead you to different applications, but there’s nothing magical about what I do. Here’s what I’ve learned:

    Do things you love, and love the things you do.

    You’ve probably already heard countless platitudes about this. “Do what you love, and the money will follow.” “Do what you love and you’ll never have to work a day in your life.” “Follow your bliss.”

    One of the advantages about doing something you love is that it becomes easier for you to invest time in learning how to do it well, and the better you do something, the easier and more enjoyable it becomes. In contrast, if you don’t like your work, you’ll spend more time and money trying to escape it – watching television, going on leisurely vacations, and so on.

    When Jeff Widman asked me what I was passionate about, I named several things right away.

    I’ve found ways to incorporate these passions into what I do at work and what I do outside work. I’ve been doing these things for a long time. I started programming when I was six! I’ve gotten pretty good at them, and passion drives me to keep learning more.

    Book cover The flip side is equally important: love what you do. Many people excuse themselves because their job doesn’t involve things they’re passionate about. One of the insights of the book Work Like You’re Showing Off (Joe Calloway) is that if you don’t hold back, if you look hard for that kernel in your work that you can be passionate about, you can grow that to be something special.

    Rather than quit work and go on a sabbatical to discover some burning career passion, which, by the way, might be just the ticket for some people, I’ve decided to go all in with my work because, well, it’s my work. Seriously. I decided that whatever work I do can be a source of fulfillment and even joy, depending on the extent to which I go all in with it. (p.72)

    Joe Calloway, Work Like You’re Showing Off

    Life is a lot more fun if you find your passion first and then develop opportunities to pursue it, but if you haven’t found your passion yet, don’t let that stop you. Life is not a spectator sport. Go all in, and you might find something you’re passionate about. Those passions may lead to other passions, too. As you get better at listening to yourself and at committing your energy, you’ll develop a sense for where your life goes.

    The next tip is:
    Do things that complement each other.

    If you’re good at a single thing, you can distinguish yourself by becoming even better at it. If you’re good at multiple, unrelated things, you can be flexible and resilient. If you’re good at multiple things and you can see how those things are related, you’ll be flexible and resilient, and you’ll get the benefits of combining those skills.

    For example, I’m passionate about experimenting, programming, writing, and presenting. Here’s how they all feed each other:


    Effort gets magnified by complementary skills.

    Do things that scale.

    Look for ways you can invest a little additional effort and get lots of benefit. For example, if you spend two hours solving a problem, spend an extra fifteen minutes writing about it online so that you can create more value for other people.

    The things I do also happen to scale, which is a happy coincidence. Once I write a program, lots of people can use it. Once I write a blog post, lots of people can read it. A presentation can reach hundreds of people, and if I invest a little effort into making the material available afterwards, I can reach many more. I always keep an eye out for opportunities to scale even more. =) Scale lets me help as many people as I can, creating as much value as I can.

    It gets easier over time, too. One or two blog posts might not be helpful, but years of archives may be. One presentation takes a lot of time to prepare, but succeeding presentations are both quicker and richer because of your experience. One program is hard to write, but the next one is easier because you’re more familiar with the tools.

    Do what you love, and love what you do. Develop skills that complement each other. Look for ways to scale up. You’ll do incredible things — and you’ll have lots of fun, too.

    Digraphs with Graphviz

    March 24, 2009 - Categories: geek

    And for the geeks, here’s the Graphviz dot file that created the graph in How to do a lot. Posting here because I know I’m going to forget, and also because it’s so cool…

    digraph {
      label = "Do things that complement each other";
      subgraph {
        rank=same
        experimenting
        programming
      }
      writing
      presenting
      programming -> writing  [label="new experience"]
      experimenting -> writing [label="new experience"]
      programming -> experimenting [label="automation"]
      experimenting -> programming [label="improvements"]
      writing -> presenting [label="content,\nopportunity"]
      presenting -> writing [label="content"]
      writing -> programming [label="reflection,\nideas"]
      writing -> experimenting [label="reflection,\nideas"]
      presenting -> experimenting [label="ideas"]
      experimenting -> presenting [label="improvements"]
    }
    

    I created it with the command:

    dot -Nfontsize=10 -Efontsize=11 FILENAME -o OUTPUTFILENAME -Tpng
    

    The result:

    Directed graph

    The Enchantress of Numbers; Happy Ada Lovelace Day!

    March 24, 2009 - Categories: women

    Today is the first Ada Lovelace Day, dedicated to the celebration of women in technology. =)

    It’s interesting to think about the history of gender and computers. Ada Lovelace‘s work in writing algorithms and imagining the many applications of computers beyond simply crunching numbers. When computers first came into the workplace, computing was seen as a pink-collar job because it resembled the secretarial work that women did. Then the tide changed, and things progressed to the point where countless research papers were written about the gender imbalance in computer science and related fields. What was it about computing that was driving women away?

    Now, perhaps, it’s shifting closer to balance, and that makes me happy.

    I remember growing up on the networks, and then the Internet. My ambiguously-gendered name and my technical skill led a number of people to assume I was male, to the great amusement of people who knew otherwise. Upon people’s discovery that I was actually female, I’d often get hit on. At technical conferences, there were never lines for the women’s bathroom, sometimes I was the only female in the session, and female speakers were rare. Being female in a male-dominated field had its perks: on overseas programming competitions, I usually got a room to myself.

    And yes, there was that niggling feeling of doubt that people found my early achievements disproportionately notable because of my gender, because I knew many brilliant people who didn’t get the opportunities I stumbled across. The imposter syndrome has many different shades.

    To this day, I still get personal e-mail addressed “Dear Sir:” (and I’m not talking about the 419 scams, but people applying for positions or asking me for help). I still have people surprised to hear my (obviously female) voice when we talk on the phone. I still find myself reflexively checking the proportion of attendees and speakers at the conferences I go to.

    I learned never to make gender assumptions in my speech and in my writing, and to enjoy turning other people’s assumptions upside down. (That’s one of the reasons I have a picture on my website.) I still come across technical documentation written exclusively with male pronouns, and it’s difficult to stifle the urge to rewrite it using plurals or alternating examples.

    It’s a lot better than it used to be, though. I don’t have to worry as much about people hitting on me or misinterpreting what I say, although I don’t know whether that’s because the culture is changing, because I’ve developed ways to head things off before they get to that point, or because I tend to hang out with older people who are already in good relationships.

    I’ve been very lucky. My parents made sure that we never thought of computers or other things as a “guy thing”. Growing up with two sisters who were both out there and doing cool things helped, too. I had plenty of role models, and I still do.

    Not everyone has that kind of environment. No matter what gender you are, keep an eye out for people who might be excluded from your field of work. Sometimes it’s a little thing like lack of confidence leading to a wider and wider digital divide. Sometimes it’s a big thing, like an environment where picking on people is acceptable (and it shouldn’t be). We can be better people than that. =)

    Tips for managing virtual assistants

    March 24, 2009 - Categories: -Uncategorized

    There are plenty of tips out there for becoming a virtual assistant, but not that many for managing virtual assistants. There are also plenty of books and resources about management and delegation, but none of them quite address the quirks of managing a diverse, changing virtual team. So I might as well start putting together useful resources here.

    Found any useful resources on how to manage virtual assistants? Share them here!

    Looking for female IT role models in Toronto?

    March 25, 2009 - Categories: toronto

    Joey de Villa (Accordion Guy) has put together a great list of some awesome Toronto women in technology. I know a handful of them, and I’m looking forward to meeting the others. I’m a huge fan of Leigh Honeywell, for example, with whom I have the fortune of being good friends, and of Sandy Kemsley, whose insights help me learn more about Enterprise 2.0 and whose donated cat bed keeps our kitties cozy. =)

    And I’m honored that Joey included me in the list!

    Helping my parents learn more about Internet and business; any tips?

    March 25, 2009 - Categories: blogging

    Last Sunday, my mom and I were talking about other businesses that she and my dad could explore. She’d recently attended a talk by a 15-year-old who said that the best product to sell these days is information.

    My mom knows a lot of things. She knows a lot about building and managing a successful photography business. She knows a lot about gifted education and parenting. She knows a lot about making big dreams happen, because she’s helped my dad with so many adventures. She knows about personal finance, success, entrepreneurship, and many other topics.

    My mom occasionally gives talks, and she’s planning to teach the business of photography as a course at a local university. If she could package some of her insights, experiences, and stories into e-books and blog posts, I think she can create a lot of value for people. And maybe my dad will get into the act too, with photographs and anecdotes and advice.

    The 4-Hour Work Week and other books that mention selling products or information online suggest using a tool like Google Adwords Keywords to study the market before investing time and effort into developing products. While looking into more information that could help my mom learn more about e-books, I thought I might do some preliminary market research. Out of hundreds of phrases suggested by the tool, I picked 19 that looked relevant, and 2 phrases that stood out because they combined okay search volume (a few thousand searches last month) with low advertiser competition. I sent the spreadsheet to my mom.

    She was delighted! She said,

    This is a wonderful list! I think there is a future for me in writing for the Internet! :)

    I started to highlight the ones with the highest number of searches. I will continue picking up info from the list tomorrow.

    my mom, after getting the Google keywords spreadsheet

    Who knows, maybe my mom will become an awesome problogger… Any advice or tips for her? =)

    Ada Lovelace Day linkfest and wrapup

    March 25, 2009 - Categories: women

    Here’s a quick wrap-up of some posts from Ada Lovelace Day:

    Linda Rodriguez wrote about how Ada Lovelace Day came to be, and paradox1x suggested some good reads.

    Mellystu wrote about her 4-year-old daughter (who’s using UNIX!), David Parmet wrote about his two daughters. Jennifer Hanen wrote about her mom’s cousin working for NASA.

    Speaking of classified work: Zach Copley wrote about Women Accepted for Volunteer Emergency Service (WAVES).

    Sharon celebrated Terri’s contribution at linux.conf.au, and Peter wrote about a Sydney IT evangelist. Lisa Damast listed six women shaping the Israeli technology industry. Red Bean wrote about a cryptographic researcher in China.

    Leah Culver wrote about Valerie Aurora (among others), who wrote about being encouraged by the fact that there are female kernel programmers like Pauline Middlelink. Karen Quinn Fung (one of my inspirations!) wrote about Leigh Honeywell (also one of my inspirations!), who salutes the Ubuntu Women.

    Julia Roy listed a number of social media geeks who have touched her life, and Jasmin Tragas wrote about a nonprofit social media consultant. Gabe Wachob wrote about a lawyer who focuses on the public interest. Jerry wrote about a number of thought leaders he admires.

    SusanT wrote about the teachers in her personal learning network, and Janet Clarey lists a number of edubloggers.

    And a shout-out goes to Tania Samsonova who included me in her list, along with lots of inspiring people including her mother-in-law (who keeps trying to teach Tania’s boys assembler… over the phone… in Russian…), Joey de Villa who included me in his list of Toronto tech women, RTFVerterra who likes my Drupal posts, and Clair Ching (another one of my friends! =) ), who shared some tidbits from our adventures. (Remember the random Japanese cat phrase? ;) )

    … and if you want a huge list, check out The Ada Lovelace Day Collection – 1091 posts and counting!

    Upcoming Web 2.0 Conferences

    March 25, 2009 - Categories: conference, web2.0

    Web 2.0 Expo – SF
    March 31 to April 3, 2009 (Schedule)
    San Francisco, CA
    Conference plus workshops: $1745 before March 30, $1945 on site
    Conference only: $1445 before March 30, $1645 on site
    Workshops only: $845 before March 30, $1045 on site
    Expo hall plus: $350 before March 30, $395 on site (includes two sessions, sponsored sessions, and all keynotes)
    Expo hall only: $100 before March 30, $100 on site

    Mesh Conference
    April 7 to 8, 2009 (Schedule)
    Registration: CAD 492.50

    Enterprise 2.0 Conf
    June 22 to 25, 2009 (Schedule)
    Boston, MA

    Early Rate
    Reg Open to 5/22
    Standard Rate
    5/23 – 6/21
    Onsite Rate
    6/22-6/25
    Full Conference Pass
    $1,995.00 $2,195.00 $2,395.00
    3-Day Conference Pass
    $1,695.00 $1,895.00 $2,095.00
    Workshops Package
    $595.00 $595.00 $595.00
    Pavilion Pass
    $100.00 $100.00 $100.00
    Pavilion Pass + Evening in the Cloud
    $195.00 $195.00 $195.00

    Web 2.0 Summit
    October 20 to 22, 2009
    San Francisco, CA
    By invitation only


    I’ll be moderating a panel on education at Mesh, and probably skipping the other conferences. I’m all for virtual conferences and blog interactions, though!

    Drupal gotchas: Never ever ever use anything less than module AND delta to specify blocks

    March 25, 2009 - Categories: drupal

    One of the common mistakes I run into is people not specifying enough information when deleting or updating entries in the {blocks} table. You should always use module AND delta to identify the block you’re working with. Delta by itself is not enough, and title is right out.

    I learned this the hard way when my blocks suddenly started failing. I jumped back to the last known-good revision, and then stepped forward. All the update functions ran okay, one after the other. When I ran all the update functions after a database refresh, though, things failed. It turned out that another developer had changed the title of a block to a blank string, but left a db_query(“DELETE FROM {blocks} WHERE title=’%s’, $title”); in the function. And since it was called fairly early in our update cycle, it didn’t turn up during the incremental updates from my known-good database.

    That took me about 45 minutes to find and fix. Thank goodness for tests and version control!

    LESSON: Never ever ever use anything less than module AND delta to specify blocks.

    Drupal in the Trenches: Fighting with Views

    March 25, 2009 - Categories: drupal

    The other developers have bought into the idea that all behavior-related changes should be in the source code. It’s the only thing keeping us sane with four developers and three environments: local, testing, and production. It has its own challenges, though, like this one:

    Problem: Blocks based on views with dependencies on custom tables sometimes don’t show up when we refreshed from the database dump, although things work if we update the database one revision at a time.

    After far too much pain and suffering, I figured out that _views_get_default_views was caching the results. When it checked our newly-enabled modules for default views, it found some views whose dependencies hadn’t gotten enabled yet, so it didn’t cache those. The next time _views_get_default_views was called, it used the values it had stored in a static variable available only in that function.

    _views_get_default_views did not provide a way to reset that static variable, so once it was called, the data was practically written in stone.

    _views_get_tables is similarly evil. (ARGH!)

    This might’ve been fixed in a Views update (and we’re still using Drupal 5, in any case), but I’m not going to suggest updating the module this close to external acceptance testing.

    So our options were:

    When there are no clean alternatives, you just gotta get your fingers dirty and hack code.

    Was that really only one hour of my life? It felt so much longer.

    RSS footers

    March 26, 2009 - Categories: blogging, wordpress

    I’ve noticed an increasing number of automated spam blogs (splogs) that syndicate my blog posts, usually with a teensy bit of attribution and a whole bunch of ads.

    I will always offer full feeds, not summaries, because summary-only blogs drive me crazy. =)

    So I thought I’d use the RSS Footer plugin to add a little context to my feed. If this is driving you crazy (too much text!) or if you want to suggest a change to the footer message, please leave a comment. Thanks! =)

    The innovator’s innovator

    March 26, 2009 - Categories: ibm

    One of the things I love about working with IBM is that we get to think about and experiment with the future. For example, with the economic climate and the travel restrictions in place, we’re looking for ways to hold more effective virtual conferences. It’s absolutely fascinating seeing people come up with ways to make virtual conferences more engaging and more inclusive, and to see the way we’re improving the technologies and processes. I can’t wait to help figure things out. And as we’re learning, we’ll help other companies save money and connect more effectively, too.

    IBM’s a large company, so we have the challenges and opportunities that many other companies also have. IBM has terrific people who are passionate about their work and who have the technical and organizational skills to make things better. And IBM has the services, software, and hardware structures to share these solutions and best practices with others. It’s not a perfect company, but it–we–can do a lot of good. =)

    The world will be a better place when anyone can come from anywhere in order to connect, collaborate, learn, and share. Looking forward to helping make this happen!

    From reactive to proactive, from inboxes to goals; thinking about the big picture

    March 27, 2009 - Categories: kaizen, life, passion, reflection

    There is surely nothing quite so useless as doing with great efficiency what should not be done at all.

    Peter Drucker

    I’m a couple of weeks into my experiment with outsourcing to and managing virtual assistants, and I’m thinking about how to take it to the next level.

    After I had cleared my backlog of lots of little things I had been thinking of delegating, I found myself mostly outsourcing trivial tasks. There’s nothing wrong with delegating trivial tasks. Although I might not get as much leverage on time, I can minimize distractions and avoid getting frustrated with interfaces. But I’ve never been the kind of person who’s happy just reacting to the numerous things that come into my inbox. I like thinking about my own projects and planning what I can do to make them happy. The difference between reactive and proactive is the difference between doing only things other people want you to do, and doing things that you enjoy doing. Reflecting on what I want to accomplish in the long run will let me identify further opportunities to make the most of virtual assistance, whether it’s the 15-minute trivial task model favored by Timesvr or the more in-depth tasks favored by the other assistants and companies with whom I’m working.

    On a related note, one of my virtual assistants in the Philippines has asked me if there’s anything else I’d like her to do. Yay taking the initiative! By thinking through and sharing what the big picture is for me, I can help assistants proactively find ways we can help each other succeed. I may even be pleasantly surprised in the process. =)

    So, what do I want to do? Long-term is a good place to start looking. I’ve got a good idea of my current strengths and some ways I can get even better at them. Here are some broad themes in my life:

    Energy and enthusiasm: I’m good at motivating other people with my energy and enthusiasm about technology and life. I’d like to someday be able to motivate thousands of people to make a difference, make a change, or make something awesome. =) I can get closer to that by:

    Communication: I’m good at writing and speaking, again about technology and life. Aside from what I’m learning because of my passion for developing systems and improving processes, I also bring my energy and enthusiasm. =) I’d like to someday be able to reach tons of people and share what I’ve been learning, and to help them share their stories, experiences and insights with others. I can get closer to that by:

    Developing software and tools: I’m particularly good at figuring out people’s source code, remembering where things are, and writing things that generally fit within that structure, thanks to my open source background. I’m also good at coaching other people along the way, breaking problems down and pointing people to relevant resources. I’m good at improving our processes, too. The automated builds and regression tests I helped my team adopt are saving us lots of headaches. I hope to someday help lots of developers pick up all sorts of great habits and skills, so that they can make lots of great systems. I can get closer to that by:

    Brainstorming and experimenting: I’m good at generating lots of ideas, at making ideas or processes a little bit better, and at combining wildly different ideas for fun. This helps at work, too – I often get asked to help people brainstorm. =) I hope to be able to look back and say that my life was one of constant learning and teaching. =) I can get even better at this by:

    Connecting the dots: I’m good at thinking of other people, books, ideas, and tools that other people should know so that they can make things happen. I hope to someday have tons of stories about what people did and how I helped them. =) I can get closer to that by:

    and I’m also slowly getting better at bringing people together to make something happen, which is why I’m experimenting with delegating to virtual assistants and figuring out how to make the most of their strengths. =)

    I’m sure I’ll discover other strengths along the way!

    That’s the very high-level picture of where I am, where I’d like to go, and a few ways on how I can get there. The themes are all related to each other, so it’s not like I’m being pulled every which way. Maybe they’re all facets of one thing I still have to figure out how to express. =)

    So, what does that mean in the next year, in the next few years?

    For communication, energy and enthusiasm: I would love to improve my processes and tools for organizing raw material for talks, and I would love to learn how to illustrate my presentations with my own sketches and photographs as well as material from the Net. I would also love to tweak my speaking style. I need to be able to slow down, use dramatic pauses, or lower my pitch when needed! ;)

    A virtual assistant can do web research on how other writers and speakers organize their raw material (some people call it their morgue ;) ), help me get my old notes together, help me look things up, help me clean up my sketches or come up with inspiration, find stock photography and Creative Commons-licensed photos on the Net, give me feedback on my speaking style, edit podcasts, transcribe speeches, and so on.

    For developing software and tools: Over the next few years, I’d like to learn how to help the developers on my teams grow even more. I could prepare webinars, presentations, and articles. Most virtual assistants probably won’t be able to help me with anything but formatting, but who knows, maybe the skills I develop during outsourcing will help me get work opportunities to grow teams too. =)

    Brainstorming and experimenting: I think it would be fantastic to learn from virtual assistants who work with lots of clients and are exposed to lots of different working styles. I also enjoy helping people improve their processes, and it’s a great opportunity for me to tweak my own. I’d also love to figure out a process or build a system for quickly testing small ideas, like articles or e-books or webinars…

    Connecting the dots: Oh, there’s definitely a lot here for a virtual assistant to help me out with! =) Managing my calendar (which I’m relieved to have someone else doublechecking), following up with people, reminding me of things, taking care of little tasks, helping me refine my process, looking for information related to people’s requests…

    So I’m pretty flexible, and if a virtual assistant can figure out how he or she can help me create value, I’d be happy to share that learning opportunity with them. =)

    What else am I missing? How can I make life even awesomer for people around me and on the Net?

    LifeCampTO: April 5 (Sun), 10:30am – 1:00pm, LinuxCaffe

    March 27, 2009 - Categories: connecting, event, life

    The next (quarterly?) LifeCampTO will be on April 5, Sunday, from 10:30am to 1:00pm at the LinuxCaffe (326 Harbord St, Toronto – south of the Christie subway station)! =)

    Sign up now!

    Agenda:

    Intros: (10:30 – 11:00, 30 minutes) – 2 minutes per person, strict.
    Come prepared with the ONE THING you _most_ want help with and the ONE THING you’re really good at and want to offer help with. We’ll keep the number system and use that to track who wants to contact whom after the meeting. Some people missed connections because neither person wrote down numbers, so we’ll keep a running tally on a whiteboard or a projected spreadsheet. If you don’t want your e-mail address to be included in the automatic matchmaking list, tell me during the event and I can make a note of that. Numbers might be pre-assigned before the event, and you can post your intros then, too. Come early and eat brunch. =)
    Small Conversations (11:00-11:40, 40 minutes):
    5 rounds of 6 minutes each, with a few minutes between for a mad scramble to find the next person you wanted to talk to. A timer will announce the halfway mark so that people can switch to offer help to the other, if they require this prompting. If people feel up to paying a small fee, we can arrange for appetizers to appear.
    Large Conversations (11:40-12:30, 50 minutes):
    2 rounds of 20 minutes each, for large topics that bubble out of the introductions. People can self-organize into whatever-size groups they want to talk about stuff. Ideal time to grab a quick snack.
    Think Tank (12:30-12:45, 15 minutes):
    Someone wins the think tank lottery! The lucky winner shares his or her goal/challenge/topic of interest and we collectively brainstorm how to help.
    Wrap-up (12:45-12:50, 5 minutes):
    Thanks, follow-ups, etc. People are invited to stay and chat over lunch with new-found connections. If you have any additional connections you want me to make, give me the numbers and I’ll update my spreadsheet.

    Feel free to pre-introduce yourself on Twitter, too – #lifecampto and whatever introduction you can squeeze into the 140-character limit.

    Advice to IT students: Learning to love what you might hate right now

    March 27, 2009 - Categories: career

    After I gave a talk at the Toronto College of Technology on how IT students can get ready for the workplace, I asked two of my virtual assistants (both educators) to follow up with some advice that they could share with their students and with students around the world. This post was contributed by Rose Andrade-Calicdan, who connected with me on oDesk. I think it’s not only an excellent insight into how IT courses can help one prepare for life’s twists and turns, but also a glimpse into the lives of wonderful people who offer virtual assistance.

    In total, it took her 1.5 hours to write, and about .5 hours of my time to give her feedback and polish the results. My conclusion: I think it was worth investing that time in bringing this story out, and I learned a lot in the process.

    Also, I feel tremendously unqualified to be delegating tasks to her, but that’s okay; I can think of it as making excuses for her to develop her skills, gain even more experience (and have more anecdotes to share with her students!), and teach me something cool. =)


    Advice to IT students: Learning to love what you might hate right now

    by Rose Andrade-Calicdan

    Teaching is a rewarding career, but it can be frustrating if your students are unmotivated and uninterested in their course. Many students registered for courses they hated, because of their parents’ demands. Some just tagged along with friends. Others had no other choice or had no idea what to pursue. Many of these students are in my class. My challenge is: how can I motivate these students to like my programming course (which they despise) and teach them the skills they need for work?

    Even during the first few days of classes, I could feel some students’ boredom. They wouldn’t participate in discussion or join the classroom interactions. I needed to encourage involvement in my class as part of the student-centered approach to class management. I love sharing my knowledge, and I also enjoy growing this knowledge by collecting others’ ideas. My personal belief is that the more you share what you have, the more you learn and gain.  

    How could I stimulate interaction and participation? Initially, I tried to let them see the significance of each lesson, demonstrating how those lessons related to their lives. If they understood how something affects them personally, they would be more likely to pay attention to the lesson.

    How could I enthusiastically share my own experience in order to heighten their interest in continuing learning? I shared how I started working in the academe, how I had experienced working on various IT-related and non-IT related jobs, and how I learned the skills to compete with other applicants.

    I told my students about my first non-IT related job, which was at the hospital. I was in charge of receiving and filing health forms submitted by patients in order to claim medical benefits. Although this task was not directly related to my course, it was my first stepping-stone to more work opportunities. Even though the job was simple, I tried to find ways to gain more experience and get the ‘know-how’ of real work scenarios. By keenly observing how the hospital generated related information, I was able to study the ‘ins and outs’ of real computer-based information systems, which during my studies were all theories and intangible concepts.

    Later, I had my first break: my first programming job. At the same hospital where I had worked, I was asked to create a database of patient information that could record medical treatment received by patients, monitor doctors’ consultations, and generate relevant reports. That was my first real taste of IT work.

    But I still wanted to teach. Taking advantage of time flexibility, I applied as a college instructor. It was difficult to adjust to working in the academe and going back to the same routine of studying and learning new lessons, but I got used to it. During this time, preparing lessons for my students was a burden. The Internet wasn’t available then, so I had to bring home several books from the library. Even though it was difficult, I gained a lot from the experience. I improved my ability to write course manuals specifically designed to suit my students’ needs and enhance their learning. And as an IT graduate, I had an advantage: I could use tools to help me develop these materials. Combining my new technical writing skills with my IT knowledge, I wrote an IT textbook and prepared modules for IT-related courses.

    The biggest break in my IT career took place when I was teaching. I wanted to personally experience real IT work. During my first summer break, I took a big programming job at my own risk! I was given a deadline to develop the application in less than two months. With guts, brainstorming sessions, and careful analysis and design, I completed a school program for assessing student fees. I found it quite complicated as the school had different schedules of fees for different type of students: government scholars, siblings discount, and various types of installment programs. This really tested my expertise. I remembered all my classes in database and programming concepts, system analysis and design knowledge, project management and software engineering. I conducted several stakeholders’ meetings, gathered users’ requirements and specifications, developed, debugged, constructed and tested–all by myself!  Whew! I not only survived the six-week project, I delivered what the school needed just in time for their school enrollment.

    When I had several years of experience in the academe, I was given the opportunity to manage a school as the College Dean. My position called for greater responsibility. I had to run the school, implementing policies while ensuring that quality education was being provided to our students. Schools face very stiff competition. Most of the time, I needed to ensure that we had updated curricula and course materials, well-maintained school facilities, and qualified professors. Even as a college dean, I still needed to keep myself up to date with new IT trends. I learned more about various e-learning and IT technologies, and I continued writing tips and advice for my students.  

    Due to some personal constraints, I needed to go back to teaching. To maximize my use of time, I’m working outside school as well, accepting simple home-based jobs that use my skills in IT: data entry, research, writing, website quality assurance, document specification, virtual assistance, and so on.

    My experiences showed that with an IT course, jobs are indeed unlimited! There are a lot of job opportunities that, in the beginning, you might have never imagined to be your means to earn a living.

    With these stories, many of my students who had been thinking of shifting to a different course were inspired to imagine themselves in various IT work opportunities. In fact, I think that among the accomplishments in my career are students of mine who landed their dream jobs, whether in the IT industry, the academe, or elsewhere: students who have learned to love the course they hated in their first few days of college.


    Rose is currently enjoying her teaching profession at Lyceum of Subic Bay while working as a Virtual Assistant and a Web Researcher at Odesk. Her dedication to teaching and her passion for sharing things she knows inspire her to continuously explore and study things relevant to her career.

    Haciendo que tu entorno de desarrollo de Drupal rocks

    March 27, 2009 - Categories: drupal

    Marco Antonio Villegas Vega of the Drupal Peru community translated my “Totally Rocking Your Drupal Development Environment” slides. Hooray! Full blog post to follow. In the meantime, check out the original at http://bit.ly/drupal25. =)

    Virtual assistance process: Manage Toronto Public Library books

    March 28, 2009 - Categories: process
    1. Visit http://www.torontopubliclibrary.ca and click on Your Account. Sign in with the provided library card number and PIN.
    2. Click on Your Account, and then click on Checkouts. You will see a list of checked-out books sorted by due date.
    3. Click on the checkbox beside all items due by the following Saturday, and then click on Renew Selected Items.
    4. You should see a list of items that were renewed and items that failed to be renewed (maximum number of renewals, other users have placed holds). Copy the titles of the items that were not renewed into an e-mail under the heading “TO RETURN“, one title and date per line. Keep this list sorted by due date.
    5. Click on Holds. If there are any items under the heading Ready for Pickup, copy the titles and expiry dates to the e-mail under the heading “TO PICK UP”, one title and date per line. Keep this list sorted by due date.
    6. Click on Sign Out.
    7. Repeat steps for any other library cards indicated, summarizing the books to return and pick up under the same headings you’ve created.
    8. If there are books to return, log on to Toodledo.com. Click on Add Task in the upper left corner. Set the subject to “Return library books”, the due date to today, the context to Errands, and the note to include all the text (return and pick-up) from the e-mail. Add the task.
    9. Send me the e-mail with the title Toronto Public Library Report.

    Making the most of opportunities – tips for managing time, energy, and money

    March 29, 2009 - Categories: finance

    Over dinner at Linuxcaffe last night, my friends and I had a great time catching up and sharing our latest adventures. I learned a lot from that conversation, too! =) In particular: the value of a crazy idea kitty fund.

    Nigel asked me if I knew lots of other people who were also experimenting with delegation and virtual assistance. I told him that a number of people were interested, but few people actually took the next step and gave it a try.

    It’s understandable. Even in good times, most people don’t experiment with ideas because:

    In order to make the most of opportunities, you need time and energy–and often, money too.

    You can free up more time for experimentation and learning. Trim your passive leisure time, like the time you might’ve spent watching cable television, if you still do. Find ways to do things more efficiently, like occasionally working from home in order to save your commute time. Increase your productivity so that you can get your work done in less time. Reassess how you spend your time and whether you can eliminate some activities or adapt them to include the new things you want to do. Batch your work for more productivity. Buy time back by asking or paying someone else to take care of some tasks.

    People often tell me that they’d love to save time, but they don’t have the time to figure out how they can. If you’re running flat out and there’s no room in your schedule for even five minutes to breathe and think, you’re running at an unsustainable pace. Slow down. This may require you to adjust people’s expectations of what you can deliver, at least in the beginning. But you need that time to think and make things better, and you’ll benefit a lot from having a little more control over how you invest your time.

    You can manage your energy. Figure out what and who give you energy, and what and who drain it. Figure out if you enjoy starting projects or finishing them, at what times of the day and in which circumstances you’re most productive. Manage around that instead of fighting yourself.

    I know my passions and what I can do to pursue them. I’m surrounded by wonderful, supportive people who cheer me on and help me recognize room for even more improvement. I can finish some projects, but I can start many more projects than I alone can finish. I’m definitely a starter, although there are some things that are difficult for me to get rolling. I’m better doing creative work in the morning than in the afternoon. I work well when I’m not worried about deadlines and when I have room to make things better.

    How can you go about understanding your energy? Experiment and reflect. =)

    You can save up money. Invest in yourself. When coming up with ideas or experimenting with new things, it pays to be able to invest a little on things that may or may not work out.

    How do you make space for this? Keep track of all your expenses and see which ones aren’t worth it. Set up automatic savings programs so you don’t even see the money in your bank account. Spend less on things and more on experiments and experiences. Focus on free or low-cost ideas in the beginning, and snowball your savings by reinvesting your profits back into your “crazy idea fund”.

    You can explore lots of interesting things when you set aside some time, energy, and money. Good luck and have fun!

    New library reminder script

    March 29, 2009 - Categories: geek

    Gabriel Mansour reminded me to update my old library script. =) Here’s the new one: library-reminder.pl. Serious geekery may be needed to make use of this script.

    Weekly report: Week ending March 29, 2009

    March 29, 2009 - Categories: weekly

    From last week:

    Also:

    Next week:

    =)

    Virtual conferences change the game

    March 29, 2009 - Categories: presentation, speaking

    One of the reasons why I give presentations at conferences so often is because I submit proposals for presentations so often. One of the reasons why I submit presentation proposals to conferences so often is because speaking at an event helps you make the most of it. Speaking also gives you a very good excuse for going to a conference, which is important when managers decide who gets to go.

    I just realized that virtual conferences are going to change the game a lot. And I love that.

    See, with virtual presentations, you don’t need to build as strong a case for going to a conference. You don’t need to wait for a conference to share your ideas, and you don’t need the votes of a program selection committee to present something and invite people to attend. You don’t need to be a speaker or an organizer in order to reach lots of people attending the same event or interested in the same area. Yes, you’ll network much more effectively as a speaker than as an attendee simply because people will come to you with questions and ideas, but even if you’re not a speaker, you can build an audience by sharing your notes or interacting with others.

    Virtual conferences level the playing field. Anyone can be a speaker. Anyone can interact. Anyone can create and share scalable value.

    What do virtual conferences bring, then? Awareness of sessions that are out there. Energy and momentum. A critical mass of people thinking about things. What can we do to take advantage of that? How can we make the most of virtual conferences’ unique strengths?

    Virtual conferences have their own challenges, of course. How do you interact with others? How do you engage people? How do you enjoy the serendipitous connections of hallway conversations? We’ll figure out how to do things like that well, someday.

    There’s something pretty powerful in this if we can help people learn how to do it effectively. That’s going to be one of my goals, then. I know something about presenting remotely. People tell me I’m an engaging and dynamic speaker, and I love figuring out how we can all get even better. I am going to help a thousand flowers bloom. =D I am going to coach my colleagues on how to make the most of these opportunities. And then–who knows–maybe the world, through our examples!

    What does that mean, concretely?

    April would be a great month to experiment with. I’d like to set up two webinars on remote presentation, and offer people coaching and consultation as well. It’ll be in addition to my full project workload, but it’s play, so I shouldn’t go crazy. The webinar materials will also be reusable, so they’ll keep creating value for other people. Hmm… I feel a Crazy Idea coming on…

    Quick tips for making the most of Sametime Unyte

    March 30, 2009 - Categories: kaizen, presentation, speaking

    More and more people are turning to virtual presentations as a way to save on travel and reach a wide audience. I’m particularly happy with Sametime Unyte, the system we use at work. Here are a few quick tips on making the most of it:

    What are your tips for webinar tools?

    Virtual assistance process: Calendar management with Timebridge

    March 30, 2009 - Categories: process

    Thanks to Ana Conception-Macatiag for documenting this process and including screenshots! =)

    Setting up appointments:

    1. Log in to http://www.timebridge.com, see Accounts and Passwords section for the login information.
    2. The screenshot below shows an example of the personal Timebridge Home Page.  To set up an appointment, click on Schedule a meeting at the left side of the screen.

      Your browser may not support display of this image.

    3. Fill in the fields.
      1. Type in email address of the attendees in the “Send Invite to” field.
      2. Indicate subject in the “Meeting Topic” field.
      3. Meeting Location (Note unless specifically specified on my meeting details, here are my venue preferences:
        • Lunch during weekdays
          • Ichiriki – Japanese – 120 Bloor Street E, Toronto – Hours: 11:45 – 2:30?
          • Camros Eatery (http://www.camroseatery.com/) – Vegan – Hours: M-F 11:30am to 7:30pm (no travel time necessary)
        • Weekends: Linux Caffe (http://www.linuxcaffe.ca) – 326 Harbord Street, Toronto. – Hours: M-F: 7am to 11pm, Sat 10am to 11pm, Sun 10am to 5pm
      4. Click the “More Meeting Options” and make sure the meeting reminder is set to 1 day before the meeting and that TimeBridge should automatically confirm the meeting time is also checked.

        Your browser may not support display of this image.

      5. Click on the button “Propose Times” to propose meeting times.  The calendar as shown in the screenshot below is linked to my Google Calendar so you will know when I’m is available. Highlight available times or as instructed by me. (Orange highlights below are the highlighted proposed times.)

        Your browser may not support display of this image.

        Additional Information in selecting time:

        • Offer 3-5 choices. Conflicts and double bookings will not be a problem with Timebridge because it is synchronized with the Google Calendar.
        • For in-person meetings, I prefer lunch (12:00 PM – 1:00 PM) or coffee/tea/hot chocolate (any time between 3:00 PM and 5:00 PM), preferably on a Thursday or Friday
        • For work-related phone meetings, I prefer calls on Wednesday to Friday afternoons (3:00 PM – 5:00 PM).
        • For personal phone meetings, I prefer calls on Saturday or Sunday (9:00 AM – 9:00 PM), preferring Saturday afternoon

        My Google Calendar will be automatically updated as soon as invitees send back their confirmations.

      6. Click DONE.
      7. Check if the proposed times are as correct. Click Edit if you need to change anything.
      8. Make sure the cc myself on this invitation box is checked.
    4. For the personal message, refer to instructions below. Then click Send.
      • For phone appointments, include the following segment in the Personal Message box:

        If the automatically-detected timezone is incorrect, please click the Edit button (under the Help Button) to set your timezone.

        Sacha Chua’s contact information

        Skype ID: XXX

        Mobile number: XXX

        Work number: XXX

        E-mail: sacha@sachachua.com

        Please send your contact information (phone number and Skype ID if available) in the “Send message to host” box.

      • For in-person appointments, include the following segment in the Personal Message:
      • Sacha Chua’s contact information

        Mobile number: XXX

        Work number: XXX

        E-mail: sacha@sachachua.com

        Please send your phone number in the “Send message to host” box so that I can contact you if something comes up.

    5. Unless instructed otherwise, click No, thanks on the “Share Availability” message to be sent to meeting contacts.

      Your browser may not support display of this image.

    6. You should see your created meeting in the home page as encircled in the screenshot below.

      Your browser may not support display of this image.

    Volunteer opportunity for teachers and retired teachers in Ontario

    March 30, 2009 - Categories: education, toronto

    I know Deniz from LifecampTO, and I’m all for helping newcomers with their job search. Know anyone who might be interested in this, either as a volunteer or as someone looking for a mentor?

    From Deniz:

    I am wondering if you can help me on a project that I am doing for not-for profit org called Skills for Change. This is a community based, charitable org. providing educational programs and settlement service to newcomers. Currently I am looking for 20 experienced practising or retired teachers who can voluntarily coach newcomer, certified teachers in their job search process. Please see the message below and let me know if you can pass on to your network.

    ——————————-

    Volunteer Opportunity for Teachers to become a Coach

    Are you a practising or retired teacher? Would you share just 4 hours a month to help a newcomer teacher adjust to teaching in Canada?

    On behalf of Teach in Ontario, Skills for Change is currently looking for experienced teachers to coach Internationally Educated Teachers (IETs) in their transition to teaching in Ontario.

    For more information, please contact

    Deniz Kucukceylan – Mentoring Recruiter
    Kucukceylan@skillsforchange.org
    Skills for Change – Toronto, Canada
    (416) 658-3101 ext. 203

    Passions, Strengths and Goals

    March 30, 2009 - Categories: passion

    I asked Joy Soria (another virtual assistant from the Philippines) to put together some career advice and stories to share with students around the world. Her first draft was okay, but generic; I challenged her to bring her own experiences and insights. I’m thrilled by the results, which I’ve shared below. I would never have discovered those facets of hers in the normal course of work, and I really appreciate getting a glimpse into her world. I hope you enjoy this post as much as I did! - Sacha


    Passions, Strengths and Goals

    Maria Victoria (Joy) Soria


    Your passions and interests motivate you to be your best in whatever endeavor you are in.

    When I was three years old, I used to listen to my older sister every time she played the piano. When she practiced her musical pieces, I found myself interested in knowing how those pieces were played. I really enjoyed listening to the melodies. I became curious and I asked my mother: I ran my fingers on the keys, could I make the same music played by my sister? My mother asked me if I would like to learn how to play the piano, and I eagerly answered yes.

    I was so excited about starting right away. When the piano teacher came to our house, I was overwhelmed with joy. Thus began my passion for music. I learned to play the piano quickly, because even at the very start, I was fascinated by it. I easily memorized the musical pieces the teacher taught me, and I began playing them by heart.

    As I grew up, piano playing became a part of me. My colleagues noticed my talent and passion for music, frequently asking me to play for occasions and even contests which needed live accompaniment on the keyboard. So even when I was teaching computers, I was able to share my passion for music.

    It is also important to examine yourself objectively and be bold enough to identify your strengths and weaknesses.

    When I was a teacher, I used to encourage my students to join school organizations in order to further develop themselves and enhance whatever talents and skills they had.

    One student named Melba asked my advice on what organization to join, because she was so shy. I told to her to write down her strengths and weaknesses so that we could identify what she needed to develop and what she could enhance.

    After examining herself, Melba found that she had a very good voice for singing. However, she was too shy to sing in front of people. I recommended that she join the school glee club where she could sing with a group. This enabled her to gradually overcome her shyness, build up her self-confidence and became bold enough to join singing contests.

    Melba won almost all of those competitions.

    She was so happy and grateful. Aside from being able to share her talent in singing, she had also successfully conquered her shyness, come out from her shell, and become a winner–not only in singing contests but also in acquiring self-confidence to discover and to explore more of her hidden talents.

    Don’t be afraid to find and develop your strengths.

    Define your goals.

    The goals we set become the targets we aim for as we face the challenges in life.

    I set personal goals for my teaching career. When I was assigned as an adviser for a graduating class, I aimed to have no student drop-out from my advisory section until the end of the school year. My desire to really have all of my students successfully graduate at the end of the school year made me set this as one of my personal goals so that I could prove that I could be a very effective class adviser.

    I wanted to make a positive difference in my students’ lives. This goal paved the way for me to establish open communication not only with my students, but also with their parents and guardians as well. I made myself approachable and accommodating whenever they needed me. I made it a point to always monitor each student in my class, especially their attendance and class performance, so that I could keep track of their progress and spot potential problems.

    I noticed that one of my students seemed to misbehave in almost all of his subjects. His other teachers complained about how  annoying he was and even threatened to drop him from the course because he habitually cut classes. I called him to my office so that I could talk to him privately and find out the core of his problem. I was concerned that he might not graduate. In the course of our talk, he shared what made him so defiant and stubborn. He told me how his parents would always quarrel violently in front of him, that his father was a drunkard and would hit his mother when they fought.

    I assured him that I would help him anyway I could. I told him that if he did his best in school, he’d have a better chance of building a better future and becoming financially independent. He could graduate and start his own career, rather than allowing himself to develop anger and hatred that could destroy his whole life. I told him to pause for a while and listen to himself and his heart so that he could find out who he wanted to become in the future.

    We stayed in touch. I helped him think about his personal goals in life, combining his talents and interests with his strengths and determination. I also went out of my way to invite his parents to school so that I could talk to them about how we could team up to help their son in his studies, helping them understand his needs–not only financially but also psychologically and emotionally. As parents, they were touched when I told them of the effect of their constant fighting on the school performance of their son. I told them that if they went on, unmindful of their son’s needs, he would be the only one who would not be able to graduate. All of his classmates and their parents were cooperating with me. This challenged them. They promised to do their best to avoid fighting and to provide their son the support he needed to succeed.

    Their son passed all his subjects and graduated. I could see the happiness and fulfillment in the parents’ faces as we celebrated the success of my students, their children, who were proud of all the challenges they had conquered. I had helped all of my students graduate during that school year, fulfilling the personal goal I had set as a class adviser.

    What are your passions, strengths, and goals?



    Maria Victoria Soria had been a public high school teacher for more than 14 years. At present, she’s using oDesk to further develop herself as a  data entry specialist, virtual assistant, and proofreader. If you’re looking for a virtual assistant, invite her to an interview!

    Monthly review: March 2009

    March 31, 2009 - Categories: monthly

    <stretch> What a great month! I learned so much. =)

    From last month:

    We’ve made a lot of progress at work on a new release of our website, which will be deployed today. Along the way, I learned a lot about Drupal, and I shared our lessons learned at DrupalCon 2009 in DC.

    I shared some tips and thoughts on public speaking and virtual conferences, which are becoming more popular at work:

    Other geeky things: I shared my library reminder script. Gabriel Mansour’s ported it to Ruby, which is probably much more readable. I learned how to make directed graphs with Graphviz, too.

    I also started delegating lots of tasks to virtual assistants, and that’s been interesting too. Here are some of my thoughts:

    and I’ve documented some of my processes:

    I’ve also shared two of the posts I asked my virtual assistants to put together for me:

    (… and my blog has the #1 spot for the search “managing virtual assistants” on Google! Nifty.)

    These experiments in delegation have prompted me to think about my own goals and see what else I can ask people to work on.

    I’ve also been able to turn that energy to other people’s goals. I brainstormed ways I could help my parents’ business, even over a distance. I helped my parents learn more about ebooks and market research on the Net. I also created a Google Adwords campaign for my parents’ company. I like how I can do split testing on the ads, and Google will optimize the delivery over time. So far, 20 people have clicked through.

    Thanks to the wake-up calls and to some schedule shuffling, I’ve been waking up early to write. It’s a great time to share what I’m thinking about or what I’m learning about life.

    I finally got the next LifeCampTO sorted out: LifeCampTO: April 5 (Sun), 10:30am – 1:00pm, LinuxCaffe, too!

    Weekly reviews:

    Week ending March 29, 2009
    Week ending March 22, 2009
    Week ending March 15, 2009
    Week ending March 8, 2009

    March had Ada Lovelace Day and Pi Day. =) Whee!

    Plans for April 2009

    Planning projects for April: making remote presentations that rock, managing virtual assistants

    March 31, 2009 - Categories: -Uncategorized

    There are two interesting projects I’d like to get going for April. One will be a guide on making remote presentations that rock, and another will be a guide on managing virtual assistants. I would like to put together blog posts and perhaps a nicely-formatted e-book. For the presentation project, I’m also planning to run a couple of seminars at work, and maybe even offer one-on-one coaching too.

    What do those projects look like?

    Making remote presentations that rock

    Possible topics:

    Coaching opportunities:

    Possible tasks to delegate:

    Managing virtual assistants

    I’d like to focus on documenting lots of processes so that we can come up with something like a manual. =) Possible topics:

    Each post will have the following structure:

    Possible tasks to delegate:

    More thoughts on calendar management

    March 31, 2009 - Categories: kaizen

    I have three days left on my free trial of Timebridge, so I need to make a decision. Do I upgrade to the USD 8.95 subscription, which includes web conferences using Dimdim and phone conferences (toll numbers), or do I ask Timesvr or my other virtual assistants to handle it and let them worry about the back-and-forth email, or do I simply publish my free/busy calendar information somewhere and let people schedule themselves?

    In the last month, I used Timebridge to schedule five meetings, one of which was with multiple people. I rarely need to schedule things outside work, and I rarely schedule meetings with multiple people. So I probably won’t renew until I feel a compelling need to do so–when I or my assistant find multiple meetings difficult to keep track of, and when my calendar isn’t being kept up to date.

    On the flip side, what would life look like if I got to the point where a service like this would be really, really helpful? Timebridge and other calendar management systems would rock if:

    I think I’ll take that USD 8.95 per month and invest it in getting to that point. =) Every little bit counts.