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

Sunday, January 6, 2008

home Sweet Home 3D

Last night my wife was feeling particularly creative. While I usually approve of her creative inclinations I was simply not in the mood to move our large objects (some call it furniture) around our apartment. Thinking aloud I said to my wife, "there must be some great open source software for interior design".

When someone says such as phrase there a few common outcomes:
  1. It is the case that such a project exists therefore the problem is solved
  2. It is not the case that such a project exists therefore it is the case that either
    1. You create the great project yourself therefore your weekend is shot OR
    2. You do not create the great project yourself therefore you are forced to move heavy objects (your weekend is probably still shot)
In my case I was fortunate enough that a great project already exists. Oddly enough, googling around didn't yield much fruit. I had foreknowledge of several good open source CAD programs though I knew that they were probably not well suited for the simple task we were trying to accomplish. I quickly turned to SourceForge and stumbled across Sweet Home 3D. It's your typical java project that comes with binary tarball complete with a bundled version of Sun's java (though Fedora's Iced Tea works just fine). Once unpacked my wife was free to let her loftiest of ideas loose on our virtual apartment. It really was quite simple to use. She cranked out 3 layouts in no time--one of which we might actually implement.

Tuesday, January 1, 2008

Lanier's Well-Tested Conjecture

Something has been eating at me for the last few days since Jaron Lanier's article Long Live Closed-Source Software! first came through my feed reader. I couldn't put my finger on it at first but maybe after letting the thoughts percolate a bit through my mind I'll be able to dig it out by the time I'm done here.

On the surface I guess the reason I was initially bothered by the article was the fact that I came across it while thumbing through my slashdot feed. Honestly, it's probably more my fault for reading /. in the first place (I get really annoyed when I see articles that seem as if they are begging for attention).

It wasn't until I finally got around to reading it that I realized it was something I needed to consider. If you make exception for phrases like "there's a reason the iPhone doesn't come with Linux" it seems as if Lanier makes several valid points. Later in the article he even makes statements that make him appear sympathetic with the open source movement. So he can't be all bad, right? Though, again, that wasn't what has been itching me as I don't tend to get too stirred up by those sorts of issues.

What really gave me a sour taste was the idea that he would be in any position to judge innovation based by his "evidence". Personally, examples like the iPhone seem ridiculous when its basic functionality is comprised of nothing more than things that I have wanted on my phone since the late 90s. The trick that will make billions for Apple is that they have done it a fashionable way. To say that it doesn't come with Linux wouldn't even be true if you consider many of the web applications on which the iPhone experience relies are are indeed running on Linux and open source. Though it wouldn't have been as catchy, Lanier should have directed his statement towards the Linux community if that was indeed what he was hinting at, "the iPhone doesn't come with [the ideals commonly expressed by the Linux community]". I guess I was wrong--that does sound catchy!

But how do communities innovate? How does one even recognize that innovation? I'll tell you how--not very easily. Let me continue along those lines and explain that I'm more accustomed to hearing people talk about innovation long after the particular innovation in question has actually been innovated. I studied Spanish golden age literature in College. For some strange reason though it wasn't called golden age literature at the time of it's writing. I even see a parallel in the field of music strangely enough. I played in several bands whose prime preceded the dawn of YouTube and MySpace, that is to say their existence is presently only in my mind (and a few other minds). I wouldn't even say our music was innovative but I do feel that in the hundreds of shows we played I was exposed to innovation through the people we encountered. Few of those bands are still around today in any form yet these underground cultures are alive all over the country. They share with each other through tours and festivals and now more than ever with the advent of communities such as Last.FM. I don't want to spend much more time on this particular topic so suffice it to say:
When people call the iPhone innovative it gives me much the same feeling as when one of my hip-hop aficionado friends from Spain considers Coolio to be innovative.
I only mention Spain because I lived there for a year and a half and those situations came up far too often. The idea is simply that the majority of Spanish teens are too far removed from hip-hop culture to make any judgement on west coast music from across the ocean (they would be, however, more knowledgeable on hip-hop from Iberia). The only thing they ever experience from the US, in my opinion, is culture that happens to be profitable. I believe Lanier's definition of innovation borders dangerously close with "it's popular ergo it matters".

I just don't buy the any statement that claims the open source movement doesn't innovate. People innovate, period. Closed source projects fail as commonly (and for many of the same reasons) as open source projects. The vast majority of closed source software is miserable in much the same manner as the sundry projects on [Insert your favorite repository here] are. It's just too simple to think of examples and counter examples for any theorem that aims to prove a function of Open/Closed sourcedness to innovation. Surely things are more complex than that.

Friday, December 28, 2007

GEB part one

I just finished part one of Godel, Escher, Bach and I can honestly say it's been an exciting experience. I was first introduced to GEB by some friends at RubyConf. A week later at the local erlounge again it was commended. Since I had been reading a lot of pure tech books lately so I decided I would give GEB a shot. It's true that it's a book that 10 people could read it and each come to 10 different (valid) conclusions as to the purpose of the book.

Highlights for me thus far
  • The carollian dialogues between the Tortoise and Achilles. Especially the one which demonstrates the difficulty of trying to use logic and reasoning to defend itself.
  • The chapter on recursion. I think it's safe to say that most people that enjoy hacking on code would find this particular chapter enjoyable.
  • The numerous correlations between seemingly disjoint subjects. Obviously the book treats the relationship between G, E and B with special consideration but there are correlations on many more levels. You find yourself on the same page dealing with the intrinsic meaning of symbols and abortion, for example.
It's been some of the most challenging pages I've read in a while. I typically only have a few hours a week to spend with GEB and it's taken me several weeks to get 275 pages into the book. Ironically the most challenging part of the book thus far has been the Preface. I guess it shouldn't be that surprising when you consider the task of describing GEB holistically.

I would recommend this book to anyone who feels like they have been too intensely focus on one mental task too long. Often I find myself doing just that since it seems to be my forte. The various puzzles have been a nice trip outside the mental box (Strange Loop) I've placed myself in.

Recommendations for reading GEB
  • Attempt all puzzles. The completion of many of the puzzles is not of much importance in the scope of GEB. The mental exercise is of far greater value.
  • When you find yourself breaking out of a Strange Loop try and explain it to someone else. Here's something I came up with last night as I explained the Dual Nature of Formal Systems:
Imagine a chess board. Legal moves can be represented in algebraic chess notation (illegal moves could be represented as well). For example Scholar's Mate could be represented as:
  1. e4 e5
  2. Qh5?! Nc6
  3. Bc4 Nf6??
  4. Qxf7# 1-0
Now since Godel showed us that formal systems (in this case the allowed moves in Chess) can be mapped onto Number Theory you could imagine being able to create equations for entire chess matches that could be derived mathematically. What if something so simple as converting all the numbers in the various expressions were converted to base 26 and represented by the English alphabet. Since I'm already in the state of imagining atrocious coincidences I might as well imagine that upon transposing the numbers the letters reveals an entire book about the legal chess moves. Better yet, what if the book was not about legal chess moves but illegal! That would indeed be a Strange Loop.

Thursday, December 27, 2007

Kino 1.2.0: great on F8

Today I spent some time figuring out why I couldn't get Kino's transitions working on Fedora 8. Previously I was using version 1.1.1 from the livna repository and I noticed today that a tarball for 1.2.0 existed. Building and installing it to my home dir worked like a charm. All audio and video FX are working. During FUDcon I might seen if I could update the livna package for kino so that others could benefit. I'll test it out a bit more in the meantime.

On a side note I also gave pitivi a shot. It's far from it's first 1.0 release but I must I like the interface a bit more than kino. Plus, being written in Python makes it a little more hackable.

Tags

my google reader feed