Wednesday, February 27, 2008

Success with gstreamer

A few weeks ago I nearly threw my laptop down the hallway at work out of frustration with Kino and Pitivi. All I wished to do was create a simple screencast using open source software. I later tried some tips I found on the Fedora Screencasting wiki only to find the recommended splice script out of date.

Though the script was broken on F8 it did give me insight into the power of the gstreamer framework. I knew that whenever I had the time I should dig in a little deeper. With the help of this Linux Conf Austrailia talk I was able to figure out what needed to be changed in order to get the splice script working again on F8.

Here's how I spliced my theora video (made with istanbul) with a wav file recorded in audacity:
gst-launch oggmux name=mux ! filesink location=ldap-gst.ogg { filesrc location=ldap.ogg ! decodebin name=v } { filesrc location=ldap-audio.wav ! decodebin name=a } { v. ! queue ! ffmpegcolorspace ! theoraenc ! queue ! mux. } { a. ! queue ! audioconvert ! vorbisenc ! queue ! mux. }

As a big fan of golfing on the command line I can appreciate convoluted oneliners. The big trick to getting the fedora-av-splice.sh script running was:
  1. Remove the version number from the 'gst-launch' executable (why hard-code that anyway?)
  2. Corrected syntax (honestly, I mostly cargo-culted this from examples I found on the interweb)
  3. Changed 'rawvorbisenc' to plain old 'vorbisenc'. The talk mentioned 'gst-inspect' which for me was the key to finding out what my system could do.
Now what I would like to do is update the Fedora wiki. Sadly, I can't figure out how to edit http://fedoraproject.org/wiki/ScreenCasting. It appears to be an 'Immutable Page'. How should this get updated? Do I email the mailling list? There's probably a doc explaining this on the wiki somewhere so I'll just have to dig for it sometime (unless some knowledgeable reader can enlighten me).

Sunday, February 10, 2008

Getting your parents to run Fedora: Challenge 1

Problem 1: Remote system administration
As other people in the session shared their similar philanthropic tech support stories we soon discovered our first problem. A problem which has led to much headache for all involved and marred the name of open source. The issue we speak of in this entry is that of remote system administration.

You can't be serious
It definitely seems odd that a group of people consisting of either developers or system administrators would face challenges with remote administration. I mean, just about every machine I work on is "remote". It's typically a Xen guest whose physical host location is both unknown and unimportant to me. But the fact of the matter is that, when dealing with our family, we're often thrown into a world (almost) completely unfamiliar to us; the world of people who do not attend FUDcons.

"Oh, but I am serious" or Phone support for the inlaws
To make things a little more concrete I'll share a little about a strange tradition in our household. Each year my wife and I fly out to visit her relatives. With impeccable regularity, during our vacation one of their Windows machines goes up in flames due to some mixture of bugs and malware and, with similar predictability, I install Fedora on their machine. The sad part to the story is that every year they end up having to remove Fedora and switch back to Windows simply because we fly back home and they don't have anyone else nearby that can help them. The truth is they have equally as many problems with Windows. It just happens to be the case that they have had years of experience with 'workarounds'. I can't tell you how many times we've had conversations on the phone like this:
mother-in-law: The internet is broken on my laptop
me: Opps, that was probably my fault. Remember that thing I mentioned to about Ogg Vorbis? Well when I ssh'd into your machine this morning to make it so that you could view our family videos I accidentally upgraded your kern...

*mother-in-law* interupts,

mother-in-law: Uhh... what can I type to fix this? I need to check my email.
me: Press alteff too. Then type 'nome terminal'. Then type 'pseudo sue dash enter'. Then type 'yum update eye dubya...'

(I'm trying my best to faithfully represent the role poor mobile phone connectivity plays in to these scenarios.)
Current recommendation for my inlaws:
I was quite surprised when several people from the Fedora project actually suggested not installing Fedora in this particular case. After talking a bit more what they really meant was, "don't install Fedora, yet". In certain cases it can be almost traumatic to have their entire digital world flipped on them. Find _good_ open source solutions to the areas where they are locked in. Once successful the switch to Fedora will be a lot smoother. After all, it's typically the case that a person only uses a handful of rather basic apps and they only have one or two apps where they are truely 'locked in'. In my mother-in-law's case it's Sibelious. Sadly, GNU Denemo didn't work well for her.

For remote support we really need something better than
  1. explain how to activate desktop sharing
  2. reverse an ssh connection
  3. port forward to their vino server
  4. launch vnc viewer over lousy internet connection and try to couch family member on what button to click on to fix their problem
The above steps usually take 20-30 minutes for me to setup and, nine times out of ten, the fix involves something as simple as, "oh, you forgot to type hotmail.com in the browser. That's why your email isn't working".

Wish list for remote tech support
  • An effective way to securely establish connections with nontechnical users and their trusted, penguin-loving friends. When connecting two people that are both on networks with some form of NAT you are frequently forced to use a third, internet addressable, machine in order to establish a connection. Obviously you can get around the use of a third party if you control the router on your end, but that's not always the case. Say my mom calls from home and I'm at coffee shop or at work.
  • A disaster recovery strategy that protects our family members from being forced to return closed source alternatives. With my inlaws some unrecoverable (at least over the phone) situation always comes up and they are forced to do the only thing they know how to--pay someone to install Windows.
Possible solutions
  • Use a service to spin up secured Fedora virtual machines over the internet. From there have an applet on their dock to request a connection from their trusted friend. Some form of remote desktop connection is then made over a tunnel ssh connection that is brokered by the VM. Of course using such a service would always require money. In the case of the EC2 it's pretty cheap in comparison to the cost of paying some Geek Squader to fix things. With Amazon's DevPay (A service that allows people to pay for usage of VMs) it would be possible to even have a system for Fedora community members to raise support for the Fedora project by volunteering to fix people's machines.
  • Koan/Cobbler to allow remote provisioning. Profiles could be created for sundry machine configurations that would lay down a working machine.
  • Customized LiveCDs or recovery DVDs. This shouldn't be too hard with the Fedora tooling and fits quite well with Koan/Cobbler.
  • Another interesting use case for a live CD would be to have an automated method to back up their data before wiping everything and starting over. In the post installation their data could be restored.
Up Next
The second challenge: Usability

Wednesday, February 6, 2008

Getting your parents to run Fedora: Intro

A few weeks ago at FUDcon I spawned a session entitled "Getting your parents to run Fedora". We had 20 people or so show show up that day and it's high time I posted some of the topics that were discussed. My first attempt in writing this proved far too verbose so I'm going to break it into parts and try and make things a little more concise. To put it best:
"If I had more time, I would have written a shorter letter."
--Hemingway, Cicero, Voltaire, Mark Twain, or maybe T.S. Elliot
Intro
Open source computing appears to be at a veritable tipping point for mass adoption. Dell actively promotes machines with Ubuntu preinstalled, Wal-mart has a hot selling Linux-based desktop, the OLPC project is getting commodity laptops in the hands of the third-world and Asus is getting them to the rest. Though this mass adoption might very well be nothing more than a footnote in the minds of many open source aficionados I view it of utmost importance regarding the topic of file formats and true digital freedom. Unless formats like odf, ogg vorbis/theora and the like are actually used in the wild they will be ignored by the online services that we use daily.

How can we assist this mass adoption? Well, like many of my friends at FUDcon, I install Fedora on every machine whose owner will allow it and, at least in my case, there is a clear dual motive. On one hand, as stated previously, I desire open source to be adopted by the masses, on the other I want my family to have machines that meet their needs. Since they are family I would be their tech support regardless of what OS they choose to run. I merely urge them to let me install Fedora since that's what I use and it's the only way I can test things out for them.

Up Next
The first challenge: Remote administration

Tags

my google reader feed