Setting up Trac Authentication on Dreamhost VPS

From time to time I use Dreamhost’s one-click-install version of Trac for a project.  I always forget the steps I have to go through to get it working, so, for posterity, here’s how it works.  This will set up a Trac site that allows the general public to visit your Trac site, but allows people who have commit permissions on SVN to login to the admin side of the site.  It also sets up email notifications.

  1. First setup the new domain from the Manage Domains panel and create subdomains for SVN and for Trac, e.g. svn.mydomain.com and trac.mydomain.com (assuming you’ll host the live project at some place like www.mydomain.com).  Make sure to enable Passenger for the Trac domain and set the directory to /home/username/trac.mydomain.com/public.  It’s important that all of these domains use the SAME username.
  2. Go to the Goodies > Subversion panel and setup the SVN repository, making sure to check the box to also set up a Trac install.  This will setup the Trac install inside of /home/username/trac.mydomain.com/public and also create a directory /home/username/trac_mydomain_com_public_trac with all of the Trac resources necessary.
  3. cd into /home/username/trac.mydomain.com/public and create admin users with the following:
    trac-admin . permission add adminusername TRAC_ADMIN
  4. SSH into the new user’s account.  Download the Trac AccountManager plugin from trac-hacks.org:
    svn co http://trac-hacks.org/svn/accountmanagerplugin/0.11 accountmanager
  5. cd into the accountmanager directory and build the plugin with the following command:
    python setup.py bdist_egg
  6. Copy the .egg file created in the accountmanager/dist folder into /home/username/trac.mydomain.com/public/plugins
  7. (Optional) If you want to personalize with your own logo, upload the logo file to /home/username/trac.mydomain.com/public/chrome/site
  8. Edit the trac.ini file in /home/username/trac.mydomain.com/public/conf as follows:
    [account-manager]
    password_file = /home/username/svn/mydomain.passwd
    password_store = HtPasswdStore
    [components]
    trac.web.auth.LoginModule = disabled
    acct_mgr.web_ui.LoginModule = enabled
    acct_mgr.web_ui.RegistrationModule = disabled
    [header_logo]
    height = your logo's height
    src = site/your_logo_filename.png
    width = your logo's width
    [notification]
    smtp_enabled = true
    smtp_from = trac@mydomain.com
    smtp_replyto = trac@mydomain.com<span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre;">
  9. Edit the .htaccess file in /home/username/trac.mydomain.com/public to allow your logo file to be shown by adding the following line after the line that says
    # Keep the graphics and style sheet the way they are
    RewriteCond $1 !^chrome/site(.*).png$

Note that on that last step, if your logo file is some other file type, e.g. gif, that you should swap out .png for .gif or whatever.

That should do it!  Not that difficult, and doesn’t require any major hacks to the default infrastructure provided by Dreamhosts’s one-click-install.  Of course it always takes me much longer than it should since I have to figure it out again every time I do it.

Share

The Shadow Scholar Madlib

I was inspired to create this little WordPress plugin after reading this eye-opening and fantastic article in the Chronicle of Higher Ed.  Read the article and then come back and try out the Mad-Lib.

Share

Prog

This is an app I’m starting that will help students monitor their progress in a class.  Kinda like the Signals project at Purdue but not tied into Blackboard.

Share

Shopp Account Info Widget (hack)

Users of the fantastic Shopp E-commerce plugin for WordPress may find this plugin hack useful.  It’s just a simple widget that puts the menu from the Shopp account management page into a sidebar widget.

Continue reading ‘Shopp Account Info Widget (hack)’

Share

WP Yogareg

I’m working on a WordPress plugin that allows you to easily display yoga schedules using the service provided at Yogareg.com.  Stay tuned!

Share

Psychometric vs Socio-cultural Learning in Classrooms

Consider two definitions of learning from Moss (2003, p14): Continue reading ‘Psychometric vs Socio-cultural Learning in Classrooms’

Share

Stealth Learning

So fun, they won't even know their learningWhat gets me about this ad (props to Failblog) is it plays into the notion that learning is not fun, that learning is something you have to trick your kids into doing.  In truth, most people really enjoy learning new things.  The sad part is that games really are a great way to foster learning.  Games get many things right that our educational system gets wrong.  Here are just a few things to think about:

  1. Games encourage you to practice things you’re not good at until you get better
  2. When you fail in a game, it doesn’t go on your report card
  3. Games naturally motivate peers who have already mastered some element of the game to help those who haven’t
  4. People play games because they choose to–you seldom have to bribe, trick, or coerce someone into playing a game

Teachers and school systems could follow on from these observations by implementing a few things:

  1. Allow students to practice until they “get it.”  This is known as mastery learning.  Everyone learns at a different pace and everyone is not ready for the same content at the same time.
  2. Get rid of report cards.  If you allow people to practice until they master the concepts, then report cards no longer are necessary.
  3. Create an environment that actively encourages peers to teach and learn from each other
  4. Give learners choice about what and how they learn

There are practical ways to implement these things.  We just need to have the courage and the energy and the patience to do it.

Share

Optimizing WordPress with My CDN

So I’ve had the YSlow plugin for Firebug installed in my browser for well over a year now, and when I’ve had time, I’ve been trying to learn about site optimization.  One of the parts that has always given me the most trouble is how to set up and use a content delivery network (CDN) for serving static files.  So as I was setting up this blog, I decided to give it another shot.  This time I was successful. Continue reading ‘Optimizing WordPress with My CDN’

Share

Morphatic Reloaded

Hitting ResetSo this site has been down for about eight months now, and I’m just now finding time to get it going again.  I decided it’s time for a fresh start.  I think I’m finally beginning to find my voice, and so we’ll see if I can make a go of blogging.  I imagine that I’ll end up writing a lot about teaching and learning and also posting random technical stuff.  I’ve always been in awe of those guys who write such beautiful tutorials on how to do just about everything on their websites.  I mean, how do they find the time?  Now I’m beginning to realize that, if they’re like me, they’re probably writing those tutorials for themselves so they don’t forget what they did the last time they encountered whatever problem it was their tutorial addresses.

Share