Products

Feed aggregator

An interesting decision market software product

George Drapeau's Blog - Thu, 07/02/2009 - 01:09
I recently learned about a company that's been around for a couple of years called spigit, and a fascinating piece of software they produce.  If you're familiar with the term "decision market" or with the book "The Wisdom of Crowds" then you have a great headstart understanding what they do.  If you haven't encountered the term or read the book, I'd explain it like this: the problem they solve is how to harness the brainpower any large company or community has in solving problems.  I'll use an example to try to explain what they do.

Suppose you are running a record company and you want to pick next year's musical artists to produce.  There are thousands of musical acts you could go with but you want to make the best few choices you can, because you can only fund a relatively small number out of those thousands.  In your record company, you've got all kinds of people who know a lot about their piece of the music industry.  So what you do is to use spigit to create a sort of a game: anybody can suggest an artist for the company to produce.  The person who suggests an artist posts to the spigit collaboration site with whatever info she wants to post that will get people to vote yes on that artist.  Other people can vote yes or no on that artist; they can post additional information about that artist (maybe a reason why to support or not support that artist).  Anybody can participate; you end up getting a wide variety of opinions from all around the company, ultimately ending up in a ranked list of artists that the company can produce.

In the meantime, people are voting on artists but also on the opinions and suggestions of other employees, so that employees build up a reputation within spigit.  The higher your reputation, the more your votes tend to count.  Reputation can go up or down; you can build up your reputation but you can also ruin it.

There's a lot more to spigit, but this is the basic idea.  The application does a nice job of combining current web 2.0 kinds of technologies and adding the concept of prediction / decision markets.  It's worth checking out if you want to make the best use of the collective intelligence of a community of people.

It looks like there are some open source prediction market packages as well; I'll have to check those out and see what they can do compared with spigit.

Powered by ScribeFire.

Using OpenSolaris as a TiVo backup device

George Drapeau's Blog - Tue, 05/26/2009 - 13:21
Sometimes my TiVo gets confused after a power outage, and it takes forever to reboot (I think it's trying to recover its files which takes a while when you have over 1TB of storage connected to the TiVo).  Sometimes, I lose some of my shows, and that makes me sad.

So I decided to find some software I could get running on OpenSolaris so I could use my home media server as a backup device for my TiVo shows.

I did it, using the Galleon open source Java application; here's how.

Now, if somebody smarter than me would just port the TiVo software to OpenSolaris, we'd have the benefits of ZFS on a TiVo box.  That would be fantastic.

Powered by ScribeFire.

Getting Galleon to work on OpenSolaris

The Transcode Blog - Fri, 05/22/2009 - 16:34
I'm trying to get the open source Java application Galleon to work on OpenSolaris. I'm writing this to describe what I did to get it working. First, a brief explanation of what Galleon is.

Galleon is an open source application written in the Java programming language that knows how to talk to a TiVo digital video recorder (DVR). The main two things that Galleon can do, from my perspective are:
  1. let you transfer video content between the TiVo and a computer
  2. let you write new TiVo interactive applications, in Java
Here is a video demo showing what Galleon applications look like on your TiVo.

There are two parts to Galleon: the Galleon server connects to your TiVo, and the Galleon GUI lets you configure the apps that show up on the TiVo.

My interest in Galleon is to use my OpenSolaris home media server as a TiVo backup device. I don't know if you have this problem, but every once in a while, the TiVo will crash and sometimes it loses some of the shows I've recorded. Most of the shows, I'm okay if they're lost. But there are always a few shows that I really didn't want to lose; those shows, I'd like to back up on a more reliable storage platform than TiVo. Now that my OpenSolaris home media server with ZFS is running and stable, I'd like to use it to backup my most critical content (if you can call TV "critical", but that's a separate issue).

I spent some time getting the Java app to build and run; I decided to run as an unprivileged user (i.e., don't need root privileges to run the app), so I made some configuration changes to make it work. Here's what I did.

First, I got the source via the project's CVS repository.

Next, I configured the "unix.properties" file in the top-level directory to change where it tries to install Galleon. By default, the app goes into /usr/share/galleon but I wanted to try it from my home directory first, so I changed those entries appropriately (i.e., change /usr/share to /export/home/me). Also, I changed the log entries from /var/log/galleon and /var/cache/galleon to /export/home/me/var/... while I was testing.

Next, I went into the "galleon" directory and typed "ant" to build the app from source code.


(didn't yet worry about how to install and package it in /usr/local, where I'd want it (override default settings for linux)

I got pretty excited at this point, a little too soon. I tried to launch Galleon from build/bin (you launch by running a shell script called "run.sh", which starts the Galleon server). This didn't quite work: Galleon uses something called the Java Service Wrapper, but the wrapper executable in my download was not for OpenSolaris. Luckily, the web site had a binary for Solaris 10 x86 (here's a link to the Community edition, version 3.3.5), which worked fine with my OpenSolaris 2008.11 release.

(There's also a SourceForge project here but I haven't yet tried to compile it from source. I'd love to hear from somebody who tries it to see if it works for them.)

I tried again to launch the Galleon server (./run.sh), but it failed on launch: Galloen couldn't write to /var/log/galleon/{gui.txt, log.txt}. Galleon uses Log4J for logging; to fix this, I modified build/conf/log4j.xml to point to my area to which I have write permissions.

I launched again but it failed to start after a couple of minutes. I looked at the log.txt file to see why; turns out, Galleon uses the Derby Java database, which wouldn't start. Why? Because the hostname of my machine wasn't found. I have issues with my home network's hostname lookup with OpenSolaris (my other machines don't have this problem, only the OpenSolaris box), so I fixed that by putting the hostname into /etc/hosts for now. I should check /etc/nsswitch.conf, but this worked for the time being.

I launched the Galleon server one more time; it spewed a bunch of INFO messages, then said "Galleon is ready." That looked like good news; time to try the GUI and see if it's for real.

To run the GUI and configure Galleon, I typed "./gui.sh", which brings up a Java application that lets you configure the Galleon server. You tell it the Media Access Key (MAK) of your TiVo, which is a simple credential used to connect to the TiVo. You can also configure Galleon by telling it which add-on apps to push to the TiVo. There are a handful of these, including local weather, a music player (the TiVo can play music stored on my OpenSolaris box), photos, RSS reader, and a few other goodies. The app I was really interested in was the "ToGo" app, as in TiVo To Go. That's the feature that lets me specify which shows I want to transfer from the TiVo to my backup server in case the TiVo crashes.

I did the configuration for the ToGo app, then went to my TiVo and went into the "Music, Photos, Products and More" menu to see the list of apps. Galleon showed up on that list; I clicked on it and went into the ToGo app. From there, I could choose shows to send from my TiVo to the computer.

I did the same thing on my OpenSolaris box with the Galleon GUI: there is a panel you can use to tell it which shows to download (e.g., all episodes of "House"). It worked just fine.

I let it do its work overnight; the next day, I found a pool of TiVo shows nicely backed up on the OpenSolaris media server. Next time we lose power and the TiVo gets confused, I can upload those shows back onto the TiVo and I'm back in business.


Compiling ffmpeg on OpenSolaris

George Drapeau's Blog - Thu, 05/21/2009 - 20:30
Here's something I don't understand: I'm trying to compile the open source program "ffmpeg", useful for transcoding from one kind of movie file and video encoding format to another, plus a whole big bag-o-tricks.

So I download the source code:
svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpegThen I go into the ffmpeg source directory and type "./configure".  It fails, reporting:

check_ld
check_cc
BEGIN /tmp/ffconf.XXRJaOkG.c
   1   #include <signal.h>
   2   static void sighandler(int sig){
   3       raise(SIGTERM);
   4   }
   5   int main(void){
   6       signal(SIGILL, sighandler);
   7       signal(SIGFPE, sighandler);
   8       signal(SIGSEGV, sighandler);
   9   #ifdef SIGBUS
  10       signal(SIGBUS, sighandler);
  11   #endif
  12       {     volatile int i=0;
  13       __asm__ volatile (
  14           "xorl %%ebp, %%ebp"
  15       ::: "%ebp");
  16       return i; }
  17   }
END /tmp/ffconf.XXRJaOkG.c
gcc -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -std=c99
-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D__EXTENSIONS__
-fomit-frame-pointer -c -o /tmp/ffconf.XXYJaalG.o
/tmp/ffconf.XXRJaOkG.c
gcc -o /tmp/ffconf.XXTJaWkG /tmp/ffconf.XXYJaalG.o
./configure: line 663: 16530: Terminated

I can't tell why it fails even making a Makefile, but after scanning the web for a while, I find a suggestion that says "use bash as your shell instead of whatever shell you were using."  I had been using tcsh, then tried ksh, then tried sh, all with the same error result.

So then I try "bash configure".  What do you know?  It created a Makefile just fine.

Now why is that?  Can somebody help me out here?  Because I don't know why the choice of a shell would make the configure script succeed or fail.  And that seems bad for the other shells available on OpenSolaris.

The app seems to compile, mostly.  Next: see how much of the app got compiled and how much of it runs.

Why am I doing this?  Because it's part of "pyTiVo", which I'd like to get running on my OpenSolaris home media server, so that I can back up the TiVo's content onto this nice, ZFS-enabled server.  I'll update my progress here.


Powered by ScribeFire.

Note to self: installing OpenSolaris packages from the SourceJuicer

George Drapeau's Blog - Tue, 05/12/2009 - 10:03
The SourceJuicer is a tool in OpenSolaris meant to simplify the process of getting apps onto OpenSolaris.  The tool works by taking a file specifying the contents of the package to be installed (called a "spec file"); this includes information on where to fetch the source code for the application package, directions on how to build from source, then where to install the resulting app.

Ultimately, packages built using SourceJuicer will be reviewed and voted into the "/contrib" repository, a repo for third-party applications not necessarily part of the OpenSolaris core distribution.  SourceJuicer puts the packages it builds into a repo called "/pending"; to test these apps, you need to tell the package manager where the /pending repository is.

I want to take my OpenSolaris 2008.11 distribution and play with some of the new packages in /pending.  For example, I want to try the Azureus (now called Vuze) BitTorrent Java application which somebody just made available on OpenSolaris.  To do so, I need to do the following steps:

  • Add the SourceJuicer "/pending" repo to the list of repo's known to the package manager:
  • $ pfexec pkg set-authority -O http://jucr.opensolaris.org/pending jucrpending
  • Now I can install the package I want (in this case, "vuze", the name of the Azureus/Vuze application):
  • $ pfexec pkg install vuze
Simple as that.

I can also add this package repo and install the package via the graphical "Package Manager" interface, available via the menu choice System -> Administration -> Package Manager.  Once the Package Manager is launched, I choose the menu choice "Settings -> Manage Repositories..." to add the SourceJuicer pending repo.


Powered by ScribeFire.

Coolest use I've seen yet for VirtualBox

George Drapeau's Blog - Wed, 04/29/2009 - 10:11
Palm's new WebOS running the new Pre phone emulator inside VirtualBox, running on Mac OS X, courtesy of Engadget.

Coooooooooooool.


How to push a simple Drupal web site from test to production

George Drapeau's Blog - Mon, 04/27/2009 - 15:47
As I'm learning how to use Drupal for creating and deploying web sites, I'm keeping track of it in blog entries.

The way I work: I do my development on a virtualized environment: I run OpenSolaris as a guest OS under VirtualBox; that way, I can easily blow away my development/test environment or send it to other machines running VirtualBox.  Then, I install the WebStack (PHP, Apache web server, MySQL), then I install Drupal using the instructions on the drupal.org web site.

Once I get my test Drupal site working, I follow these instructions to deploy to an actual production server.  It makes the develop-test-deploy cycle pretty easy, and I can develop and test pretty much anywhere.



Powered by ScribeFire.

Amazing Season Finale - Terminator: The Sarah Connor Chronicles

The Transcode Blog - Thu, 04/16/2009 - 15:14
I've been watching "Terminator: The Sarah Connor Chronicles" since it began last year. Season One was fine; I felt it was something of a guilty pleasure with great promise. Season Two started out well, and I just feel like the show got progressively stronger and more complex as it went on.
But the last two episodes of Season Two were on an entirely different plane: wow. I'm not going to spoil it here, but if you were watching Terminator: TSSC and gave up before the end of Season 2, you really need to get back on it and watch all the way to the end. The last two episodes were amongst the best TV I've seen in years. Incredibly cool, incredibly powerful stuff, and the season finale did something rare: it both left you hanging and it provided huge resolution to a lot of storylines.

There are so many things to like about the show. If you like gender balance, this is a great show because three of the primary characters, perhaps the most interesting characters, are women. And for an action show, there is a surprising amount of emotional depth, character development, and attention to relationships. Don't get me wrong: there's plenty of action. But there's a lot more than just the action.

Here are some interview clips with a few of the stars of the show, for those of you who are becoming even more engrossed with the show as I am. I plan to re-watch both seasons, so I can go through the whole storyline again and pick up pieces that I missed.

I hope that FOX renews the show for a third season, because the stories set up by the season finale are amazing.

Interview with Lena Headey (Sarah Connor)

Interview with Shirley Manson (Miss Weaver)

Interview with Summer Glau (Cameron, a Terminator)

Interview with Thomas Dekker (John Connor)

Interview with Garret Dillahunt (John Henry)


A Mac OS X application to help me stay organized

George Drapeau's Blog - Thu, 04/16/2009 - 10:31
I've got lots to update here, including my experiences using OpenSolaris as my home file server which I've been using for a couple of months now with success.

But now, I want to take just a minute to mention a really cool Mac OS X app that I use every single day: it's called Notebook, from a company called Circus Ponies, and it's wonderful.

For years, I've carried around a physical book to write notes in: you know, catch meeting notes, take action items, that kind of stuff.  I switched to a Franklin planner some years ago and found it helpful for me to organize myself.  But there were always some things that I couldn't put into my Franklin filing system, like presentations or technical documentation.  Also, I have horrible handwriting and I'm slow at it (but fast at typing), so I looked for a way to do all of this on a computer.

That's what I use Notebook for.  The metaphor is a spiral notebook: the app looks like a spiral notebook and you just start typing into it.  It's trivially easy to make outlines, just by using Tab or Shift-Tab.  Making action items is similarly trivial: as you're typing whatever, just press Command-Control-A (action) and it's now a to-do item with a little checkbox next to it for you to click when you're done.  Want to give that to-do a due date?  Type Command-Control-T (time) and type "today" or "wednesday" or "6/1/2009" and it'll do the right thing.

If something you're typing refers to something else like a URL, there's a simple command you type to attach the link; you see a little icon next to whatever you were typing.

Want to link a document to your notes?  Just drag it onto your typing and a thumbnail of your document will show up, and Notebook will keep track even if you move the document around your directory tree.

Notebook has a nice indexing mechanism, too: for each notebook you make, it adds some standard pages to the end, like a To Do Items page, a an index of words (like you'd see at the end of a text book), a page showing all your attachments you've dragged into the notebook, and some other things that make sense once you've started using some of the other cool features.

I love this app.   I think it's a beautiful Mac application, and it really does help me stay organized.  I'm not even scratching the surface of what it can do.

Check it out.  Or as with just about everything nowadays, become a Facebook fan of Notebook.


Powered by ScribeFire.

VirtualBox 2.2 supports software appliances

George Drapeau's Blog - Thu, 04/09/2009 - 11:09
Looks like the VirtualBox people keep chugging along (although if you're moving at 150mph, is it right to call it "chugging"?).  Yesterday I saw they've released version 2.2, which supports the Open Virtualization Format (OVF).  This is what I like about it: when I want to share my software configuration with somebody, I make a vbox image and give it to somebody, but then they have to know the vbox VM configuration I used.  That means they have to go into the vbox UI and manually set up the same settings I did.  It's not difficult, but it's error-prone and it's tedious.

No longer: now I just tell VirtualBox to create an appliance out of my vbox image and it creates two files: an OVF image and the OVF description of that image.  When my co-worker wants to use my appliance, she tells vbox to import that appliance (the OVF description) and it does the right thing.  No configuration, nothing: it's just ready to go.  Nice and easy.

Jignesh Shah tried it out yesterday and created a relatively small-footprint OVF appliance of PostgreSQL 8.3.

I think this is going to be the way to distribute software in the near future.  And if not the way, then a valid way.  Virtualized images solve a few problems that I can think of:
  1. You don't have to worry about which operating system the customer has deployed on their desktop or server; as long as they're running a hypervisor, you can deliver your software to them easily, nicely pre-packaged in a virtualized image "appliance";
  2. it eliminates the install step for trying software: you've already packaged up your app in an appliance, no installation needed for the customer just makes things simpler and faster for them to get rolling;
  3. The transition to cloud computing becomes easier; if you use a virtualized image on your desktop, you can use the same image on a cloud like Sun's cloud computing offering, Amazon EC2, or other clouds that I'm sure will come online over the next few years.  This gives customers the flexibility to run apps where they want, and to migrate to/from clouds.
JumpBox is one example of a company that provides open source applications in virtualized appliance format, but also lets you try their appliances right now, for free, on a cloud: it's JumpBox.  Nice idea.

TurnKey Linux seeems to be something similar; I haven't looked much into it yet so don't know if they offer the cloud preview feature that JumpBox provides, but they do have the download-an-app-in-a-virtualized-image feature.


Powered by ScribeFire.

How to update the feeds on my Drupal-based web site

The Transcode Blog - Sat, 03/21/2009 - 11:50
My web site, transcode.com, displays blog entries from two blogs right now:
I'm using a Feed Aggregator module in Drupal to tell it to pick up blog entries and display them on the front page of the transcode.com web site.

But Drupal doesn't automatically pick up new entries; you have to tell Drupal to go out and check for new entries every once in a while. In the Unix world, that kind of periodic activity is usually known as a cron task, something you would tell the "cron" program to run from time to time.

I currently host my Drupal site on GoDaddy.com; there is a nice, easy way to have GoDaddy run the cron task as often as you'd like, and it'll wake up Drupal and get Drupal to update all the feeds it receives.

For simple instructions on how to configure the GoDaddy cron service, look at this web page. It's simple and complete; it tells it all.


Notes on Setting up a Drupal automated test bot on OpenSolaris

George Drapeau's Blog - Fri, 03/20/2009 - 12:08
On drupal.org, there is a topic about how to set up an automated test bot.  I'd like us at Sun to contribute to Drupal's automated test farm, so I'm trying to set up a computer running OpenSolaris to be a test server.  Here are notes I've taken based on the work I've done so far to get it working.


I got the test package here.  Unpacked it into /var/local, as per the instructions listed here.

- To get my test bot running on OpenSolaris, I have modified the following files in the directory tree:
First, I created a new profile, called it "opensolaris" (here it is).  Some parameters are different on OpenSolaris than on CentOS or Debian / Ubuntu; re-defined as appropriate for OpenSolaris.  (example: starting, stopping, and re-launching services like Apache.  Use the Service Management Framework (SMF) In OpenSolaris for easy start/stop/restart of services and automatically take care of other services which may need to be managed as dependencies.)

Next, tried to run the "testing_server_install.sh" script to see if everything just worked.  Nope.  Ran into several obstacles; here they are, with the fixes / workarounds to make things work.

Obstacle #1: cvs checkout with "-z6" option seemed to stall.  I think the check-out happened okay and cvs just isn't exiting, but I'm not sure.

Fix #1: added new variable to the profiles: CVS_COMPRESSION.  Then, modified the "install" shell script; whenever it used to say "$CVS -z6", substitute "$CVS $CVS_COMPRESSION".  Now in the platform-specific templates (in the profiles/ directory), look where "CVS" is defined.  Add a line before it, creating a new variable called "CVS_COMPRESSION" and on OpenSolaris, define it as empty (i.e., don't pass the "-z6" flag).  The cvs works fine without the "-z6" option.

Note to self: need to find out why -z6 didn't work.


Obstacle #2: tried running the script, it complained that it can't log into MySQL with root user & password.

Fix #2: I forgot to set up the DB with password.  Went into MySQL and did that.

Obstacle #3: APACHE_INIT didn't work as currently defined.  Needs to accommodate different ways of starting services; in particular, the OpenSolaris svcadm command syntax different from using init.d.

Fix #3: Modify the definition of $APACHE_INIT for OpenSolaris.  Also, modify the "install" script to just invoke "$APACHE_INIT" with no arguments (i.e., no "restart") since it'll now be part of the $APACHE_INIT variable itself.

Obstacle #4: during useradd, complains that usernames are too long. Red herring; it's a warning, not an error.

Fix #3: ignore it.  Ideally, either have OpenSolaris accept usernames longer than 8 characters (really, it doesn't do that?), or shorten the usernames for Drupal test package.

Obstacle #4: during useradd, the use of the "-m" flag caused useradd to fail.  Why does "-m" fail?  It's a conflict with trying to add directory in /home, which is automount-mapped to /export/home.  There's an OpenSolaris bug about this.

Fix #4: Specify a "-b" option to set the base directory to /export/home, i.e., "-b /export/home".  Added a variable to the profiles: "USERADDFLAGS", specified "-b /export/home" in the opensolaris profile.  Then, changed the "install" script to invoke $USERADD with $USERADDFLAGS.

Alternate Fix #4: disable automounting for the test apparatus.  I didn't try that.

Obstacle #5: PHP complains about not having valid timezone set.  Script continues fine, doesn't complain, but I'd like to get rid of the warning complaint message.  I'd rather not modify the php.ini file to set timezone, but setting TZ didn't work either.

Fix #5: Set /etc/php/5.2/php.ini line "date.timezone" to "US/Pacific"; that eliminates the warning complaint message.


After these fixes, the script ran to completion.  Next, launched the browser, tried to visit my virtual test site's virtual domain, which I called "www.opensolarisdrupaltest.com".

Obstacle #6: In my browser, went to http://localhost.  Nothing appeared.

Fix #6: Don't go there; go to http://www.opensolarisdrupaltest.com instead.  That's the virtual site used for the testing.

Obstacle #7: In my browser, went to http://www.opensolarisdrupaltest.com.  Nothing appeared.  Need to tell my system to resolve "www.opensolarisdrupaltest.com" to "127.0.0.1" (i.e., localhost).

Fix #7: added "www.opensolarisdrupaltest.com" to the end of the line in /etc/hosts that contains "127.0.0.1".  The entire line now looks like this:

127.0.0.1 vbox-testhost localhost loghost www.opensolarisdrupaltest.com

Obstacle #8: In my browser, went to http://www.opensolarisdrupaltest.com.  Apache told me it couldn't access this site; didn't have permissions to access the drupal subdir in /var/www, where the drupal instance is installed.  As it turns out; the install process creates a "vhosts.conf" file to tell Apache that we're creating a virtual host (www.opensolarisdrupaltest.com); the install process puts this in /var/apache2/2.2/vhosts.conf which is fine, but the default Apache install on OpenSolaris denies access to virtual directories. 


Fix #8: Reverse access policy for the virtual host.  Modify the "install" script, the section that begins and add the following two lines to that directive:

Order allow,deny
Allow from all

(note: no space around the comman separating allow and deny)


Next, restart the web server (go to the GNOME Applications menu and choose "Applications -> Developer Tools -> Web Stack Admin -> Start Apache2/MySQL Servers".

Now, browsing to http://www.opensolarisdrupaltest.com works; I see the DrupalTestBot page and can log into Drupal.

Note to self: was this the correct way to give permissions to Apache for the drupal directory root /var/www/drupal on the VirtualHost www.opensolarisdrupaltest.com?


Okay, so now it's all configured; so far, so good.  What next?

How can I try out my test bot to see if it's configured and working correctly?

How do I make my test bot part of the test server farm?

Powered by ScribeFire.



How to push a simple Drupal web site from test to production

The Transcode Blog - Sun, 03/15/2009 - 23:45
I decided to give up on the twitter issue for now (I've been trying to get tweets onto my Drupal web site but couldn't make it work right). So I decided to go with what I have, which is my basic web pages + my Transcode blog showing up on the Drupal-created web site's main page.

My next task was to try to push the web site live, onto my hosted web server. I had to learn how to create a MySQL database on the hosting company, which was easy to do but took a couple of hours to show up. I also wanted ssh access to my site, which apparently caused my hosting company to move my hosted environment to a different server; that also took a few hours to get going, but was relatively painless. I tried to connect to it after a few hours, and couldn't; I found out that I needed to create a new password for the ssh service to work (makes sense, no problem).

Once I did all that, a few hours later I was able to get to the site. Here were the basic steps I took:

- I took my whole web site's "htdocs" directory tree and made a tarball of it:

tar cvf website.tar ./htdocs

This is where my images, PHP code for Drupal + modules, and all my other content sits, at least the content that doesn't get stored directly into the database. (e.g., PostScript documentation that I store on the site for public download)

- I FTPd the tarball over to my hosting provider, just put it somewhere for the time being.

- I took a snapshot of my Drupal database using "mysqldump":

mysqldump -u myusername -pmypassword mydatabasename > databasename.sql

(note: no space between the "-p" and the beginning of the password string. Not sure why that was the case, when there is a space between the "-u" and the beginning of the username string.)

- I FTPd the databasename.sql file to my hosting provider as well.

- I logged into my hosting provider's site, went into the administration interface for it, and asked it to create a new MySQL 5.0 database. I gave the database the same name as I gave when I set up Drupal on my local site. I picked a username and password, then it was ready to go. I noted the hostname where that DB sits, because I need to use that later.

- I used ssh to get into my site. Once there, I unpacked the htdocs tarball:

tar xvf htdocs.tar

- I moved the htdocs directory to be a peer of my existing html directory (the top of the html tree for my existing web site; I'm going to replace that html tree with my new Drupal-based html tree). Now, typing "ls" I see the following

htdocs html

- I went into htdocs/sites/default/files/ and edited the "settings.php" file to make sure the setting for connecting to the database is correct. I needed to update the username, password, and hostname to make sure they all correctly use the production site's values. The line looks something like this:

$db_url = 'mysqli://user:password@nameofdbhostname.com/nameofdb';

- I moved the original html directory out of the way

mv html html.orig

- I moved the Drupal-based htdocs document tree into place

mv htdocs html

- I was then ready to test by going here: http://www.transcode.com/

The Drupal-based content showed up like a charm. Voila!

My first live site push with Drupal worked, no problem.

Next, I'll need to learn how to do site updates: I intend to do more web site development via Drupal on my local machine, using my test/development environment (using VirtualBox to run OpenSolaris as a guest OS, so that my whole environment sits in a single .vdi file that I can put on a USB stick and take and use anywhere I want to go, or copy it onto a DVD or anywhere, really). Anyway, once I make more improvements to my web site, I'll want to push them live, too, so I need to learn how to update an existing live site. I'm hoping that will be pretty easy.


VirtualBox bug fixed: clonehd works in version 2.1.4

George Drapeau's Blog - Sun, 03/15/2009 - 22:55
Not too long ago, I blogged about a workaround to a bug in VirtualBox.  The problem is fixed in VirtualBox version 2.1.4, available for download here.

Here's where the bug fix comes in handy: suppose you use VirtualBox to create a virtual machine that you want to use again and again; maybe it's a test environment of Windows, Linux, OpenSolaris...whatever you like.  An easy way to make copies of that test environment is to type "VBoxManage clonevdi WindowsXP.vdi copyOfWinXP.vdi" (or whatever you call your VirtualBox hard disk images).  But the "clonevdi" command wasn't making copies correctly, so there was a workaround.  It's not a big deal, but having the bug fixed makes it just that much easier to make perfect copies of the environment you worked so hard to create.

I discovered at DrupalCon that a lot of people are using VirtualBox.  I have been a faithful VMware user for well over five years and have liked it, but I've also been using VirtualBox for about six months now and I find it good enough for my personal needs that I've switched from VMware to VirtualBox.  One nice little benefit: it can be a host on all the operating systems I use (Ubuntu Linux, Mac OS X, OpenSolaris; I tend not to use Windows as a host OS, only as a guest, because I'm too concerned about viruses infecting my Windows environment and I'd like to be able to just blow it away and start from scratch easily; VirtualBox lets me do just that).


Drupal Question: Putting Content Into A Block

The Transcode Blog - Thu, 03/12/2009 - 23:29
I'm struggling again today. Yesterday, I managed to put some static content into my Drupal-based web site, and I even have the front page showing this blog. That's great; I was ready to push my test site live, which I don't yet know how to do but was going to read up on it.

But then I got greedy and decided "Hey, wouldn't it be great to show my Twitter 'tweets' on one of the sidebars of the web site? I mean, as long as I'm showing my blog here, why not my micro-blog?" So I did some searching and found a Twitter module that does the opposite: every time I make a change to my Drupal site, Drupal will tweet with my account. I want my account's tweets to show up on my Drupal site!

So, I found different instructions that look better; the section of the page that says to use FeedAPI looked reasonable. I had to install a couple more modules. I did that, configured as the author said (I think), but still no content. I can't see my tweets!

Here's my question: how do I put content into a block? I can see my overall page design has a bunch of blocks. I can create new blocks. But how do I tell a block what kind of content should go into it, or what kind of stuff a block should show? I've put other content into other blocks, but I don't really know how I did it. I'm thinking that's a pretty key concept, connecting content to blocks.

And I don't want to have to write PHP to do it. There must be a simpler way.

I'll keep reading, but right now, it's all pretty confusing to me.


Today's Novice Drupal Question

The Transcode Blog - Wed, 03/11/2009 - 12:41
I'm now at the point where I have a really simple web site: maybe 10 pages total, in a hierarchy. All but one page is static content; the one page that isn't static is used for displaying this blog.

Most of the web content is text, with a few links and some images. I need to fix my web pages so that they correctly refer to the images (if I view one of my pages, I just see "broken image" icons showing that the link is no good). That's where my question comes in. I want to know: how does Drupal store my content?

This web page seems to indicate that the content is all stored in the database (MySQL in my case).

Okay, fine. So now I need to transfer my image files onto my web server so that my Drupal pages (nodes) can see them. Does that mean I need to somehow put each image into Drupal so Drupal can assign a node ID to them, keep them in the database? That seems a little goofy; the images are already sitting on my web server in my htdocs directory. Can't I just have my web pages refer to those images?

I'm trying to do this the Drupal way, but I don't know what the Drupal way is for dealing with images.

I'll keep looking for answers.

Oh, and by the way: in the Drupal 6 "Getting Started" documentation, I can't find anything about how to take my test web site and push it to my actual web server. Somebody told me about using "mysqldump", but I don't know if that will cover everything in my web site, or what. And I've never used it before; I need to find documentation on drupal.org on how to use it to push my site live.


Using Drupal to display this blog

The Transcode Blog - Tue, 03/10/2009 - 19:35
I went to DrupalCon last week and had a blast. I decided to try out Drupal by running my web site, transcode.com, with Drupal. So far, mixed news.

It was incredibly easy to install Drupal. But I've just spent about two hours trying to do what I thought was a simple thing: display my blog on the front page of transcode.com. Turns out it is simple; I just got confused by the Drupal terminology and menu system.

I thought the right thing to do was to create a "Page" node, then somehow find a way to include the contents of the "Feed aggregator" module into the page. Makes sense to me: I've got a module ("Page") for displaying content, and I've installed another module that knows how to grab an RSS feed and extract its contents. I thought that telling Feed Aggregator to put its contents inside my Page node would be the way to do it.

I still don't know how to make that happen, but it turns out there is an easier way to accomplish what I need. I got the info from this tutorial page, entitled "Using Drupal as your RSS Feed Aggregator". That's exactly what I want, and the directions were simple and clear.

The trick: go ahead and activate the Feed aggregator module, which gives it a name that Drupal can refer to as a URL. Then for my site information (Drupal->Administer->Site configuration->Site information menu), tell Drupal that this feed aggregator should be my default front page.

It worked! Now, time to move the rest of the original transcode.com site into Drupal, then test it out before I publish it.


More Coming in 2009

The Transcode Blog - Mon, 03/09/2009 - 00:31
I've been away from this blog for about a year now, but watch this space: there's more to come. I plan to write a little about media, but also about other technical and non-technical topics.

For example: spreadsheets. I like to use spreadsheets to help me make decisions, mostly purchasing decisions. I created a spreadsheet for house shopping, one for car shopping, and I intend to post both of them to this blog, to share what I learned in case it helps others in their own shopping.

Watch for a spreadsheet I used to track sales prices of homes in Alameda and San Mateo counties in California over the last 3 years. Maybe you'll find it useful.


Syndicate content