<?xml version="1.0"?>
<!-- name="generator" content="blosxom/2.0" -->
<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd">

<rss version="0.91">
  <channel>
    <title>paganini.net   </title>
    <link>http://www.paganini.net/index.cgi</link>
    <description>Paga's Home</description>
    <language>en</language>

  <item>
    <title>Mutt Tip: Safe Delete</title>
    <pubDate>Thu, 27 Mar 2008 01:00:00 EDT</pubDate>
    <link>http://www.paganini.net/index.cgi/2008/03/27#mutt01_safe_delete</link>
    <description>&lt;p&gt;&lt;strong&gt;Update (Mar 27, 2008)&lt;/strong&gt;: I discovered that the previous version of these
macros did not not work with collapsed threads. I&amp;#8217;ve updated the code and now
it should work under all cases.&lt;/p&gt;

&lt;p&gt;In its default configuration, mutt behaves as man&amp;#8217;s best friend and does what
it is told without any further question. Press the &amp;#8220;D&amp;#8221; key and down the drain
goes your email. No way out.&lt;/p&gt;

&lt;p&gt;To solve this problem, edit your &lt;code&gt;.muttrc&lt;/code&gt; file and add the following:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;## Safe deletion macros apply for all folders, EXCEPT the 'deleted' folder.
## &quot;Y&quot; is set to 'unsafe delete' (useful over slow imap links).
## Also note the slight difference between 'index' and 'pager' for thread
## delete. The &quot;\ni&quot; will cause mutt to briefly switch to pager mode and
## back to index, causing the thread to uncollapse. It's a trick but as
## a trick goes, it works really well (for me, at least) :)

bind  index   y   delete-message
bind  pager   y   delete-message

folder-hook . 'macro index d  &amp;lt;copy-message&amp;gt;=deleted\ny&amp;lt;delete-message&amp;gt;  &quot;Safe Delete&quot;'
folder-hook . 'macro pager d  &amp;lt;copy-message&amp;gt;=deleted\ny&amp;lt;delete-message&amp;gt;  &quot;Safe Delete&quot;'
folder-hook . 'macro index \ed \ni&amp;lt;tag-thread&amp;gt;&amp;lt;copy-message&amp;gt;=deleted\ny&amp;lt;delete-message&amp;gt; &quot;Safe delete Thread&quot;'
folder-hook . 'macro pager \ed &amp;lt;tag-thread&amp;gt;&amp;lt;copy-message&amp;gt;=deleted\ny&amp;lt;delete-message&amp;gt;    &quot;Safe delete Thread&quot;'

## Really erase if we're using the 'deleted' mail folder.

folder-hook 'deleted' 'macro index d   &amp;lt;delete-message&amp;gt; &quot;Delete Message&quot;'
folder-hook 'deleted' 'macro index \ed &amp;lt;delete-thread&amp;gt;  &quot;Delete Thread&quot;'
folder-hook 'deleted' 'macro pager d   &amp;lt;delete-message&amp;gt; &quot;Delete Message&quot;'
folder-hook 'deleted' 'macro pager d   &amp;lt;delete-message&amp;gt; &quot;Delete Message&quot;'
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;From this glorious moment on, pressing &amp;#8220;D&amp;#8221; will no longer delete messages,
but rather move them to a mail folder called &lt;em&gt;deleted&lt;/em&gt;. The same applies for
Control-D, which moves entire threads to that folder.&lt;/p&gt;

&lt;p&gt;If you want to permanently delete a message, bypassing all the chicanery
described above, just use the &amp;#8220;Y&amp;#8221; key.&lt;/p&gt;
</description>
  </item>
  <item>
    <title>Dreamhost: How to piss your customers by giving them money</title>
    <pubDate>Sun, 12 Aug 2007 01:00:00 EDT</pubDate>
    <link>http://www.paganini.net/index.cgi/2007/08/12#dreamhost</link>
    <description>&lt;p&gt;This is a bit long, but a good example of how to lose customers for nothing.&lt;/p&gt;

&lt;p&gt;After many years squatting on friends servers to host some of my pages and
backups, I decided it was time to give them a break and pay a professional
hosting company. I took some advice, read some reviews and decided to go with
&lt;a href=&quot;&quot; title=&quot;http://www.dreamhost.com&quot;&gt;Dreamhost&lt;/a&gt;. Their employee-owned model, feature
set and overall coolness made them very appealing to me.&lt;/p&gt;

&lt;p&gt;I signed up and was really happy with Dreamhost. So happy in fact, that I
decided to recommend their services to a friend. He signed up and called me saying
&amp;#8220;Hey, you just made $97!&amp;#8221;. Puzzled, I asked why and he explained that
Dreamhost had this referral program that would pay me $97 for bringing a new
customer in!  Already planning on a second year of hosting, I logged in and
discovered that I had made $11.94, and not $97 as promised in the signup
page. How strange&amp;#8230;&lt;/p&gt;

&lt;p&gt;A bit of investigation revealed that Dreamhost has, in fact, two &amp;#8220;rewards&amp;#8221;
plans: Plan number one, where they pay you $97 for each person you refer, and
plan number two, where they pay you 10% of everything your referral spends
with Dreamhost. The &amp;#8220;Earn $97&amp;#8221; plan is promimently displayed on their webpage
banners, and when you click on the link for further explanations, you&amp;#8217;re
directed to the &amp;#8220;affiliate program&amp;#8221; page that shows two options: &amp;#8220;Option 1&amp;#8221;,
One time payments and &amp;#8220;Option 2&amp;#8221;. Recurring payments (the &amp;#8220;10%&amp;#8221; plan). Note
that even here, the &amp;#8220;Earn $97&amp;#8221; plan is the &lt;strong&gt;first&lt;/strong&gt; option shown in the
page.&lt;/p&gt;

&lt;p&gt;But still, what happened? It does not take a lot of math to realize than
earning $97 now is better than earning 10% of what your friends spend with
them, unless you prefer to wait eight years to make the same amount of money
you could make now, or have friends who tend to go on a hosting service
shopping spree. Dreamhost knows that too, and so, they &lt;strong&gt;silently&lt;/strong&gt; opt
you in for the &lt;strong&gt;10% plan&lt;/strong&gt;. There&amp;#8217;s no warning when people put you as
the referrer and you &lt;strong&gt;do not have a chance&lt;/strong&gt; to fix it afterwards! Yes,
I changed my &amp;#8220;preference&amp;#8221; to &amp;#8220;Earn $97&amp;#8221;, but that will only affect future
referrals. Somewhere, deep in the jungle, a sales monkey was laughing and
calling me a sucker.&lt;/p&gt;

&lt;p&gt;Still believing that this could have been an easy to correct oversight on
their part, I posted a message to &amp;#8220;Customer Relations&amp;#8221;. The answer was
something along the lines of &amp;#8220;Hello Marco, I&amp;#8217;m really sorry that you feel
this is unfair (bla&amp;#8230;) If you want to make a suggestion, click on this URL
(bla&amp;#8230;) But we have one of the best referral programs out there (bla&amp;#8230;) I&amp;#8217;m
sure others will prefer the 10% plan (bla&amp;#8230;)&amp;#8221;.  Translation: We&amp;#8217;re not going
to do anything for you. I replied to that message and got another message
from the &amp;#8220;Dreamhost Sales Team&amp;#8221; saying that they were &amp;#8220;very sorry&amp;#8221; that I
feel that way about a &amp;#8220;free service they offer&amp;#8221; (ha, what about the customer
who would not have signed up if I had not referred him?), that they do not
think they&amp;#8217;re being &amp;#8220;unfair&amp;#8221;, and that I&amp;#8217;d have to use their &amp;#8220;suggestion
system&amp;#8221; to get anything changed (oh, the nerve!)&lt;/p&gt;

&lt;p&gt;Hello Dreamhost, wake up!!! Referral bonuses are &lt;strong&gt;not&lt;/strong&gt; a freebie. You got
yourself a new paying customer because &lt;strong&gt;I&lt;/strong&gt; pointed that customer your
way.  Also, &amp;#8220;Customer Relations&amp;#8221; is there to &lt;strong&gt;do&lt;/strong&gt; something! If they had
said &amp;#8220;OK, we&amp;#8217;ll revert the situation &lt;strong&gt;if&lt;/strong&gt; you apply this to one extra year
of hosting&amp;#8221;, I&amp;#8217;d gladly call it a closed case. Unfortunately, this never
crossed the Customer Rep&amp;#8217;s mind, in a demonstration of complete pettiness and
disregard for the satisfaction of your customers.&lt;/p&gt;

&lt;p&gt;Conclusion: Dreamhost just lost a customer and supporter. My friend was
shocked with the whole sleaziness of the situation and is considering
cancelling service with them. Two unhappy customers going out the door, for
less than $100 (that would have gone straight into paying for an extra year
of hosting).&lt;/p&gt;

&lt;p&gt;My congratulations to the Dreamhost Sales Team for a job well done.&lt;/p&gt;
</description>
  </item>
  <item>
    <title>The power of &amp;#8220;netstat&amp;#8221; in 10 easy steps</title>
    <pubDate>Thu, 14 Sep 2006 01:00:00 EDT</pubDate>
    <link>http://www.paganini.net/index.cgi/2006/09/14#netstat</link>
    <description>&lt;p&gt;This is a quick guide to some not so obvious command-line options available
in the Linux netstat(8) command. I hope you enjoy it.&lt;/p&gt;

&lt;h2&gt;1. Plain old netstat&lt;/h2&gt;

&lt;p&gt;Without any command-line arguments, &amp;#8220;netstat&amp;#8221; shows a list of network
connections in your system, including TCP, UDP and UNIX socket connections.&lt;/p&gt;

&lt;p&gt;If you want to speed up things a bit, use &amp;#8220;-n&amp;#8221; (numeric) to prevent network
lookups and display IP and port numbers instead of names.&lt;/p&gt;

&lt;h2&gt;2. Seeing all connections with &amp;#8220;netstat -a&amp;#8221;&lt;/h2&gt;

&lt;p&gt;Just like the above, but shows &lt;strong&gt;all&lt;/strong&gt; connections, including those in the
LISTEN state. Good when you want to see all connections in one shot.&lt;/p&gt;

&lt;h2&gt;3. What I am listening to? &amp;#8220;netstat -l&amp;#8221;&lt;/h2&gt;

&lt;p&gt;Many people type &amp;#8220;netstat -a | grep -i LISTEN&amp;#8221;, but &amp;#8220;netstat -l&amp;#8221; will do
the same: filter the output to show sockets in the LISTEN state only.  Very
useful to quickly see what is being &amp;#8220;served&amp;#8221; in your box. You can combine
this with &amp;#8220;-u&amp;#8221; to only show UDP connections or &amp;#8220;-p&amp;#8221; to restrict the output to
TCP connections only.&lt;/p&gt;

&lt;h2&gt;4. Who&amp;#8217;s using that socket? &amp;#8220;netstat -p&amp;#8221;&lt;/h2&gt;

&lt;p&gt;With &amp;#8220;-p&amp;#8221;, netstat shows what program/pid is using a given socket. Very
handy to find out who&amp;#8217;s listening on a port or holding a connection open.  A
personal favorite of mine is &amp;#8220;netstat -lput&amp;#8221;, which displays all TCP and UDP
sockets in the LISTEN state, plus the name and pid of the program listening
on that socket.&lt;/p&gt;

&lt;h2&gt;5. Details, lots of details: &amp;#8220;netstat -e&amp;#8221;&lt;/h2&gt;

&lt;p&gt;If you really want to see what&amp;#8217;s going on, add the &amp;#8220;-e&amp;#8221; command-line switch
to your netstat command. It will cause &amp;#8220;extra&amp;#8221; information to be printed,
such as the username, process name and pid, and the inode number of each of
your sockets.&lt;/p&gt;

&lt;h2&gt;6. Dial &amp;#8220;o&amp;#8221; for obscure: &amp;#8220;netstat -o&amp;#8221;&lt;/h2&gt;

&lt;p&gt;The &amp;#8220;-o&amp;#8221; command-line option causes the TCP timers to be displayed next to
the connection.  If you&amp;#8217;re not into TCP/IP, the extra information will not
make sense. For those who are, you&amp;#8217;ll be able to see your TCP timers in
real-time, and follow the progress of things like the KeepAlive timer, for
instance. For a real treat, use &amp;#8220;watch netstat -to&amp;#8221;, sit down and watch the
blinkenlights.&lt;/p&gt;

&lt;h2&gt;7. Interface status with &amp;#8220;netstat -i&amp;#8221;&lt;/h2&gt;

&lt;p&gt;Shows the status of your interfaces. Very handy to make sure everything is
going smooth on the hardware side of things. Keep an eye on the ERR, DRP and
OVR counters, as they can indicate trouble (10/100 mismatch anyone?).&lt;/p&gt;

&lt;h2&gt;8. Continuous display: &amp;#8220;netstat -c&amp;#8221;&lt;/h2&gt;

&lt;p&gt;Makes netstat display output continuously. This command-line option can be used
with any other form of netstat. I&amp;#8217;d suggest using the &amp;#8220;watch&amp;#8221; command instead.&lt;/p&gt;

&lt;h2&gt;9. TCP/IP statistics: &amp;#8220;netstat -s&amp;#8221;&lt;/h2&gt;

&lt;p&gt;Shows statistics about your TCP/IP stack. Requires deeper knowledge of the
protocols to make some sense of it, but can be used by anyone to impress
(scare?) friends, relatives and prospect girlfriends.&lt;/p&gt;

&lt;h2&gt;10. Boooooring: &amp;#8220;netstat -r&amp;#8221;&lt;/h2&gt;

&lt;p&gt;Use &amp;#8220;ip route&amp;#8221; instead of &amp;#8220;netstat -r&amp;#8221; to look cool and hip, and say &amp;#8220;netstat is
sooo 1975&amp;#8221; when somebody asks why you&amp;#8217;re doing that.&lt;/p&gt;
</description>
  </item>
  <item>
    <title>Transforming your CAPS-LOCK key into a third Control key</title>
    <pubDate>Sun, 10 Sep 2006 01:00:00 EDT</pubDate>
    <link>http://www.paganini.net/index.cgi/2006/09/10#nocaps</link>
    <description>&lt;p&gt;While strolling across &lt;a href=&quot;http://www.digg.com&quot;&gt;digg&lt;/a&gt;, I found an
entry on
&lt;a href=&quot;http://winadmin.forret.com/registry/wanocaps/&quot;&gt;How to transform your caps-lock into a third Control key&lt;/a&gt;.  It basically introduces
a program, called waNOCAPS, that modifies some entries in the Windows
registry to do its deed.&lt;/p&gt;

&lt;p&gt;But, can you do that in Linux/X? The answer is yes, and you don&amp;#8217;t even need
to download a program, or poke into undocumented areas of your operating
system.&lt;/p&gt;

&lt;p&gt;Unlike Windows, all the infrastructure to remap the keyboard is already
embedded in the X11 server. The program to modify key and button mapping in
X11 is called &amp;#8220;xmodmap&amp;#8221;, and comes pre-installed.  All you have to do is to
open a terminal window and type:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;xmodmap -e 'remove Lock = Caps_Lock'
xmodmap -e 'keysym Caps_Lock = Control_L'
xmodmap -e 'add Control = Control_L'
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;From this point on, your &amp;#8220;Caps-Lock&amp;#8221; key should behave just like another
&amp;#8220;Control&amp;#8221; key.&lt;/p&gt;

&lt;p&gt;But wait, what does that mean? THAT YOU WOULD HAVE TO HOLD SHIFT TO YELL
ONLINE?  Only if you want! You can remap the right Control key to be your new
caps lock:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;xmodmap -e 'remove Control = Control_R'
xmodmap -e 'keysym Control_R = Caps_Lock'
xmodmap -e 'add Lock = Caps_Lock'
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If you prefer to leave the right Control key alone and use the right
&amp;#8220;Windows&amp;#8221; key as your new Caps-Lock key, use the commands below instead:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;xmodmap -e 'keysym Super_R = Caps_Lock'
xmodmap -e 'add Lock = Caps_Lock'
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Needless to say, this will only work if your keyboard has a &amp;#8220;Windows&amp;#8221; key (a
distant relative of the infamous &amp;#8220;any&amp;#8221; key) :)&lt;/p&gt;

&lt;p&gt;Note that none of the changes above is permanent. The method to make them
permanent will vary according to your distribution of Linux and how you
invoke X11. In Ubuntu, for instance, all you have to do is to use &amp;#8220;pico&amp;#8221;,
&amp;#8220;nano&amp;#8221;, &amp;#8220;vi&amp;#8221;, or your editor of choice to add the lines below to a file
called &amp;#8220;.profile&amp;#8221; under your home directory (create the file, if necessary):&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;if [ &amp;#036;DISPLAY ]
then
  # Add the 3 lines below to Convert caps-lock into Control
  xmodmap -e 'remove Lock = Caps_Lock'
  xmodmap -e 'keysym Caps_Lock = Control_L'
  xmodmap -e 'add Control = Control_L'

  # Add the 3 lines below to use the Right-Control as Caps-Lock
  xmodmap -e 'remove Control = Control_R'
  xmodmap -e 'keysym Control_R = Caps_Lock'
  xmodmap -e 'add Lock = Caps_Lock'

  # Or add the 3 lines below to use the right Windows key as Caps-Lock
  xmodmap -e 'keysym Super_R = Caps_Lock'
  xmodmap -e 'add Lock = Caps_Lock'
fi
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Log out of your session and log back in. You should now be able to enjoy your
new keyboard layout.&lt;/p&gt;
</description>
  </item>
  <item>
    <title>Capturing Google and Youtube videos with one command</title>
    <pubDate>Tue, 11 Jul 2006 01:00:00 EDT</pubDate>
    <link>http://www.paganini.net/index.cgi/2006/07/11#capturing_flv</link>
    <description>&lt;p&gt;This is a very brief HOWTO on how to capture
&lt;a href=&quot;http://www.youtube.com&quot;&gt;Youtube&lt;/a&gt; and &lt;a href=&quot;http://video.google.com&quot;&gt;Google&lt;/a&gt;
videos to your computer, saving them as AVI files encoded in the MPEG4
format, using only one command (actually, a few commands that you can cut &amp;amp;
paste from this page).&lt;/p&gt;

&lt;p&gt;Unlike most other articles around the net on this subject, this does
not require the specialized plugins for Firefox or programs. All you
need is a Linux workstation running any fairly recent Linux distro, and
&lt;a href=&quot;http://ffmpeg.mplayerhq.hu/&quot;&gt;FFMpeg&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Step 1 &amp;#8212; Make sure you have what you need&lt;/h2&gt;

&lt;p&gt;You need to be running Firefox. You&amp;#8217;ll also need FFMpeg. To check if you
have FFMpeg installed, just type &amp;#8220;ffmpeg &amp;#8212;version&amp;#8221; at the shell prompt. You
should see something like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;#036; ffmpeg --version
ffmpeg version CVS, build 3276800, Copyright (c) 2000-2004 Fabrice Bellard
(...) (many other lines removed)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If you don&amp;#8217;t see the above, you&amp;#8217;ll need to install ffmpeg. In Ubuntu and
most other Debian variants, all you need is &amp;#8220;apt-get install ffmpeg&amp;#8221;. The
installation procedure for other distributions of Linux will vary.&lt;/p&gt;

&lt;h2&gt;Step 2 &amp;#8212; Locate and playback the content&lt;/h2&gt;

&lt;p&gt;Fire up Firefox and go to the website of your choice (usually Google Videos
or Youtube). Select and play the movie you want. Allow the movie to end
normally (this will guarantee that we have a fresh copy of the movie in the
Firefox cache.)&lt;/p&gt;

&lt;h2&gt;Step 3 &amp;#8212; Convert and save&lt;/h2&gt;

&lt;p&gt;Open command prompt and cut/paste the following into it:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ffmpeg -i &quot;&amp;#036;(find ~/.mozilla -regex '.*Cache.*' -a -not -regex \
  '.*_CACHE_.*' -printf '%T+ %p\n' | \
  sort -n | awk '{ print &amp;#036;2 }' | xargs file | \
  grep -i &quot;Video&quot; | tail -1 | awk -F : '{ print &amp;#036;1 }')&quot; \
  -vcodec msmpeg4v2 -b 200 -ab 64 -ar 22050 -s 320x240 \
  /tmp/video.avi
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;You should see something like:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Input #0, flv, from '/home/youruser/.mozilla/firefox/randomnumber/Cache/5D2BD385d01':
  Duration: N/A, bitrate: N/A
  Stream #0.0: Audio: mp3, 22050 Hz, mono
  Stream #0.1: Video: flv, yuv420p, 320x240, 1000.00 fps
Output #0, avi, to '/tmp/output3.avi':
  Stream #0.0: Video: msmpeg4v2, yuv420p, 320x240, 25.00 fps, q=2-31, 200 kb/s
  Stream #0.1: Audio: mp2, 22050 Hz, mono, 64 kb/s
Stream mapping:
  Stream #0.1 -&amp;gt; #0.0
  Stream #0.0 -&amp;gt; #0.1
Press [q] to stop encoding
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;And a frame counter. At this point, FFMpeg is converting your movie to mpeg4. This will
take a while, depending on the speed of your computer and the length of the movie.&lt;/p&gt;

&lt;p&gt;When the bash prompt returns, you&amp;#8217;ll have your file encoded as &amp;#8220;/tmp/video.avi&amp;#8221;.&lt;/p&gt;

&lt;h2&gt;Troubleshooting and optimizations&lt;/h2&gt;

&lt;p&gt;Despite its intimidating look, the script above does something very simple:
it locates Firefox&amp;#8217;s cache directory and encodes the most recent file that
looks like a &amp;#8220;Macromedia Video&amp;#8221; file.  There&amp;#8217;s not a lot of intelligence to
it, and a few things can go wrong.&lt;/p&gt;

&lt;p&gt;Remember that only the &lt;em&gt;most recent&lt;/em&gt; file is encoded. Thus, if you watch one
video and watch another, the first one will not be encoded. Worse yet, if you
try to watch the first video again, it&amp;#8217;s already in the cache, so it won&amp;#8217;t
be reloaded. As a result, it will never be the &amp;#8220;newest file&amp;#8221; in the cache
again. To fix this, on Firefox, click on &amp;#8220;Edit-&gt;Preferences-&gt;Privacy-&gt;Cache&amp;#8221;
and then click on the &amp;#8220;Clear Cache Now&amp;#8221; button.  Reload the desired video and
repeat the procedure.&lt;/p&gt;

&lt;p&gt;Another problem is that there are a number of versions of ffmpeg floating
around.  Yours may have a slightly different syntax, so YMMV.&lt;/p&gt;

&lt;p&gt;If you intend to run the program more than once, it may be a good idea to
save it into a shell script. To do that, cut &amp;amp; paste the commands into a file
called &amp;#8220;/usr/local/bin/ffcap&amp;#8221;. Then, turn on the executable bit on this file
with:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt; chmod 755 /usr/local/bin/ffcap
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;And you should be able to run all the shenanigans above just by type &amp;#8220;ffcap&amp;#8221;
at the bash prompt.&lt;/p&gt;

&lt;p&gt;You may also want to tweak the compression parameters or change the
output codec. More compression means lower quality, but smaller resulting
files. Check ffmpeg&amp;#8217;s documentation for that.&lt;/p&gt;

&lt;p&gt;If you&amp;#8217;re using Gnome, you may want to change the output file from
&amp;#8220;/tmp/video.avi&amp;#8221; to something like &amp;#8220;~/Desktop/video.avi&amp;#8221;. This will make the
video appear on your Gnome desktop when processing is finished. If you save
the commands into a script (see above), you may even create an icon in your
desktop pointing to the script, so capturing videos is only a click away.&lt;/p&gt;
</description>
  </item>
  </channel>
</rss>