Tag Archives: downtime

We’re Joining the SOPA/PIPA Blackout

OpenMeetings.org will join other organizations including the Internet Archive, Mozilla Foundation, and the Wikimedia Foundation in suspending core services for all EST hours on January 18th, 2012 to protest consideration of Stop Online Piracy Act (“SOPA”) and PROTECT IP Act (“PIPA”), two bills under active consideration in the U.S. Congress.  During this time our main page will redirect to Electronic Frontier Foundation’s home page which provides relevant background information on the issue and helpful call-to-action instructions.

However, we will have real-life presence at an Emergency NY Tech Meetup outside the Manhattan offices of U.S. Senators Schumer & Gillibrand.  Watch for User:GChriss, probably with a video camera in hand.

Our participation in the blackout is for the same reasons outlined by Kat Walsh, a Trustee of the Wikimedia Foundation:

“We depend on a legal infrastructure that makes it possible for us to operate.  And we depend on a legal infrastructure that also allows other sites to host user-contributed material, both information and expression.  For the most part, Wikimedia projects are organizing and summarizing and collecting the world’s knowledge.  We’re putting it in context, and showing people how to make to sense of it.

But that knowledge has to be published somewhere for anyone to find and use it.  Where it can be censored without due process, it hurts the speaker, the public, and Wikimedia.  Where you can only speak if you have sufficient resources to fight legal challenges, or if your views are pre-approved by someone who does, the same narrow set of ideas already popular will continue to be all anyone has meaningful access to.”

Many of our indexed meetings contain elements of “fair use” – a short audio segment, an illustrative graphic, or video clips embedded within presentations and discussions.  Inclusion of these elements as commentary/criticism on underlying ideas are classical examples of “fair use” provisions in the copyright act.  If SOPA and PIPA became law – a very real possibility – we would become vulnerable to politically-motivated takedowns – or even attacks on our existence – on material deemed as politically inconvenient.

Finally, we’re a small project that very much welcomes donations to keep us running.

Fixing Broken Functionality

From approximately 5-October until 23-November, in-browser video playback in OMwiki was completely broken.  Visitors were greeted with a “Video playback is broken at the moment. :-/” top-posted message, which leads to poor first impressions and undermines our overall credibility.  So, what happened and how can it be avoided in the future?

Click here to skip the tech breakdown.

What happened?
All video currently hosted on OpenMeetings.org is encoded in the Ogg Theora format and is stored in the /archives subdirectory.  Currently, there is no content delivery network (CDN) in place, so all video originates from a single server.  This server utilizes oggz-chop, which is part of the oggz toolset — it’s one of several programs that manipulate Ogg files in helpful ways.  oggz-chop is a binary program that returns the very beginning of an Ogg Theora file proceeded immediately by the section of interest indicated by a query string appended to the URL request (/archives/video.ogv?query_string).  The query string contains the requested start/end time, and makes possible user-friendly jump-to-this-time URLs.  Thus, we achieve intelligent seeking.

Because oggz-chop is a binary program, it is sensitive to changes in the host operating system.  Sometime early October, our hosting provider migrated all shared hosting plans to a new compute cluster and operating system.  The migration was unannounced as there is a general expectation that shared hosting plans will not run executable binaries; most customers would not have noticed a difference.  Compiling natively on both the old and new clusters is disabled for security.

How was it fixed?
The new operating system lacked the libogg.so shared library, a mandatory dependency.  Both libogg and oggz-chop where compiled on a binary-compatible machine and the resulting binaries were copied over.  This is a mostly-blind trail-and-error process.

I unsuccessfully attempted to create a single binary that contained both libogg and oggz-chop via static linking.  I found alternative route by including a runtime search path (export CFLAGS='-Wl,-rpath=/home/openmeet') such that oggz-chop could locate libogg.so in a non-system directory.  Tweak some variable names in cgi.c, and voilà!

#define DOCUMENT_ROOT “/home/openmeet/public_html”
. . .
getenv (“PATH_INFO”); –change-to–> getenv (“REDIRECT_URL”);

[Post truncated for brevity 11-June-2012]