Things on my mind. George Drapeau's Weblog

Jul 09
26
I just sat down and wrote about (most of) the podcasts I listen to, in response to a friend's request.

Here it is.  I should probably do this once a year, just to see how my tastes change over time.


Powered by ScribeFire.

Jul 09
23
Thanks to my business colleague, Steve Quan of Sun's Market Development organization, I am at the O'Reilly Open Source Conference (OSCON) at the San Jose Convention Center.

I'll be here for the rest of the day, and am snapcasting the event.  It's public, so anybody can join and give me feedback as I capture what I'm seeing and hearing.

Come on in and join for the rest of the day; I'll be here.



Powered by ScribeFire.

Jul 09
19
Here are some web sites and apps that I learned about during the 1st of two days of the Community Leadership Summit at the San Jose Convention Center this weekend.  I'll add commentary later; this is just to clear my head and get ready for a second day of learning.

  • Get Satisfaction: community-powered support
  • Stack Overflow: look at how they do reputation management in an open-ended community (site is for collaboratively asking & answering programmer questions)
  • IceRocket: real-time search of blogs
  • DjangoPeople: show who around the world (on a Google map) is a Django web framework developer
  • CiviCRM: open source Customer Relationship Management for the civic sector.  Mozilla is using it to build web site that shows how contributors are contributing to different parts of Mozilla (work in progress).
  • ThisNext: social shopping site
  • Gobby: collaborative text editor (somebody mentioned it's similar to a different editor, but I forget its name)
  • Zemanta: helps you improve your blog posts by watching what you're writing and suggesting related tags, photos, links, etc.  I gotta see how they do this.
  • Posterous: this sounds like the simplest way to blog ever.  I gotta try this, too.  Somebody mentioned it sounded similar to tumblr.
Okay, gotta go!  It's getting late and there are people to meet and communities to lead.

Twitter tag for the Community Leadership Summit: #cls


Powered by ScribeFire.

Jul 09
16
Today was a special meeting of Sun stockholders.  The question on the table: whether to approve the merger whereby Oracle acquires Sun.

I decided to "snapcast" the event live, using a free web-based application call G-Snap!  I've blogged about g-snap! before but in the last few months they've done a fair amount of improvement to the interface.  It's really slick and full-featured now.

Click here to view the event log for the snapcast, so you can see what I typed and the comments people made.  Password: sunvote.

There was good news and bad news about the snapcast.  The good news: over 50 people joined the event with only about 30 minutes' notice, and the interface worked like a charm.  I was able to upload photos to the event live, so people could see what the auditorium looked like, the meeting agenda, and a bomb-sniffing dog outside the premises.

The bad news: I was approached by an official in the auditorium who nicely instructed me to turn off my computer during the meeting.  I was assured the meeting would be brief, and indeed it was.  Total elapsed time: about 8 minutes.

Nonetheless, I came away from the event eager to try G-Snap! again for something like this.  I thought of using my twitter account to tweet as the event went along, but I would have lost the sense of community.  By snapcasting, I was able to send live updates just as I would with twitter, but I also had the benefit of others being able to "tweet" live as well, bringing everybody together.  It's a lot more cumbersome to try to arrange that via twitter, but with G-Snap! it was trivially easy to do.

Maybe the Oracle stockholders meetings will allow photos and live blogging.  We'll have to see about that.


Powered by ScribeFire.

Jul 09
14
I listen to a lot of podcasts, usually when during my runs or while I'm driving.  One of the podcasts I've been listening to over the past few years is This Week in Tech (TWiT), hosted by Leo Laporte.

Well, he's got a network of podcasts on the TWiT Network and I recently found a new one that I think is pretty good: FLOSS (Free Libre Open Source Software).  It's a weekly show in an interview format; each episode is about a different open source topic or person.

Recently, FLOSS interviewed Sun's own Glynn Foster to discuss OpenSolaris.  Not a bad introduction to OpenSolaris if you haven't checked it out yet.

Another Sun-related FLOSS Weekly is the ZFS podcast.

I also enjoyed the interview with Jono Bacon of Canonical; it looks like there are plenty of other FLOSS episodes worth a listen.

Powered by ScribeFire.

Jul 09
13

I just saw this short video talking about how Sun's cloud computing platform lives at a fascinating datacenter called the SuperNAP in Las Vegas.

Maybe you've just read that sentence and asked yourself two questions:
  1. "fascinating" and "datacenter" in the same sentence?  Dude, you've pegged the nerd-meter at 100.  What happened to you?
  2. A datacenter in Vegas?  I thought datacenters try to keep machines cool, not toasty.
Well, the story about how Switch Communications keeps the SuperNAP cool is actually pretty interesting; here is their own video that talks about it.  And here's a story from The Register talking about the SuperNAP as well.

And Vegas had me scratching my head as well, but it turns out that many of the big Internet carriers have endpoints in Vegas.  So if you have a datacenter that sits where all those endpoints meet, you have the opportunity to offer huge bandwidth at great prices to your customers.  That's what the Switch people do.

Check it out; it's actually pretty interesting reading and watching.

Powered by ScribeFire.

Jul 09
7
Okay, this blog entry is one of the "note to self" kind; I should probably create a tag for that or something.

Here's what I'm trying to do: I have a spreadsheet with data I've gotten from a table in a web page; the table happens to be data from a twiki that our organization uses to track the projects we do.  I'm looking at data trends, doing so by creating a data pilot table (in Excel land, a pivot table) of my spreadsheet data.  The results are nice, but now I want to see the same results without all the entries that have the string "SSE" in the keywords column of my spreadsheet (many columns in this spreadsheet, one of them contains keywords for the projects we track).

Creating the data pilot table is easy.  Creating the filter is easy (on the data pilot, click on the "Filter" button to bring up a dialog that lets you choose your filter parameters).  Getting to the regular expression part is easy (in the Filter dialog, click on the button labeled "More >>" and check the box labeled "Regular expression").  But what to type in the "Value" text field?  I tried typing *SSE*, but that didn't do anything.

I found the solution in this great blog about OpenOffice tips.  The solution: type a period before each asterisk, i.e., .*SSE.*, instead of *SSE* as Excel does it.

It worked beautifully; whew!

Powered by ScribeFire.

Jul 09
2
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.

May 09
21
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 ffmpeg
Then 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.

May 09
12
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.

Apr 09
29
Palm's new WebOS running the new Pre phone emulator inside VirtualBox, running on Mac OS X, courtesy of Engadget.

Coooooooooooool.


Apr 09
27
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.

Apr 09
16
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.

Apr 09
9
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.

Mar 09
20
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.