<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-15592649</id><updated>2011-07-08T02:56:29.605+02:00</updated><category term='man -t'/><category term='screen'/><category term='printing'/><category term='lpr'/><category term='streaming video'/><category term='man page'/><category term='vlc'/><category term='sopcast'/><title type='text'>Random Wisdom</title><subtitle type='html'>An attempt at organizing my thoughts ...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>98</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-15592649.post-6527550125244173454</id><published>2008-10-03T15:09:00.008+02:00</published><updated>2010-02-01T10:48:16.262+01:00</updated><title type='text'>Bash process substitution</title><content type='html'>From the &lt;a href="http://www.tldp.org/LDP/abs/html/process-sub.html"&gt;Advanced Bash-Scripting Guide&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;"Piping the stdout  of a command into the stdin of another is a powerful technique. But, what if you need to pipe the stdout of multiple  commands? This is where process substitution comes in.&lt;br /&gt;&lt;br /&gt;Process substitution feeds the output of a process (or processes) into the stdin of another process."&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;The syntax is:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt; &gt;(cmd_list)&lt;br /&gt; &lt;(cmd_list)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Example:&lt;/span&gt; comparing the head of two files using diff&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$ diff -u &lt;(head -n3 /var/log/dmesg) &lt;(head -n3 /tmp/dmesg)&lt;br /&gt;--- /proc/self/fd/63 2009-05-26 19:52:45.144544140 +0100&lt;br /&gt;+++ /proc/self/fd/62 2009-05-26 19:52:45.149544007 +0100&lt;br /&gt;@@ -1,3 +1,3 @@&lt;br /&gt;-Initializing cgroup subsys cpuset&lt;br /&gt;-Initializing cgroup subsys cpu&lt;br /&gt;-Linux version 2.6.27.21-170.2.56.fc10.i686 (mockbuild@xenbuilder2.fedora.redhat.com)&lt;br /&gt; (gcc version 4.3.2 20081105 (Red Hat 4.3.2-7) (GCC) )&lt;br /&gt; #1 SMP Mon Mar 23 23:37:54 EDT 2009&lt;br /&gt;+Linux version 2.6.22.9-61.fc6 (brewbuilder@hs20-bc2-4.build.redhat.com)&lt;br /&gt; (gcc version 4.1.2 20070626 (Red Hat 4.1.2-13))&lt;br /&gt; #1 SMP Thu Sep 27 18:48:03 EDT 2007&lt;br /&gt;+BIOS-provided physical RAM map:&lt;br /&gt;+ BIOS-e820: 0000000000000000 - 000000000009f000 (usable)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The diff header clearly shows that file descriptors are used as the underlying mechanism.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-6527550125244173454?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/6527550125244173454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=6527550125244173454&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/6527550125244173454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/6527550125244173454'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2008/10/bash-process-substitution.html' title='Bash process substitution'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-540898777002249271</id><published>2008-10-03T15:08:00.005+02:00</published><updated>2009-05-26T18:44:49.694+02:00</updated><title type='text'>Embedding fonts in a PDF document</title><content type='html'>It is often a good idea (or a requirement) to embed the used font faces in a PDF document. This is easily accomplished using &lt;span style="font-weight:bold;"&gt;ps2pdf&lt;/span&gt; during the final stage of conversion of a document from PS to PDF:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$ ps2pdf -sPAPERSIZE=a4 -dPDFSETTINGS=/printer -dCompatibilityLevel=1.3 \&lt;br /&gt;         -dMaxSubsetPct=100 -dSubsetFonts=true -dEmbedAllFonts=true \&lt;br /&gt;         'input_file.ps' 'output_file.pdf'&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;An explanation of the command options can be found in the &lt;span style="font-weight:bold;"&gt;Ps2pdf.htm&lt;/span&gt; file in the Ghostscript documentations (or &lt;a href="http://pages.cs.wisc.edu/~ghost/doc/cvs/Ps2pdf.htm"&gt;here&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;[&lt;a href="http://www.hamilton.ie/gavinmc/docs/timesinpdfs.html"&gt;Source&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-540898777002249271?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/540898777002249271/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=540898777002249271&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/540898777002249271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/540898777002249271'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2008/10/embedding-fonts.html' title='Embedding fonts in a PDF document'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-2774408735737715440</id><published>2008-06-06T16:41:00.003+02:00</published><updated>2008-06-06T17:01:40.684+02:00</updated><title type='text'>Re-encoding MP3 Files using LAME</title><content type='html'>I have some MP3 files encoded at a constant bitrate of 320kbps that my phone seems to have trouble playing smoothly. So, I looked into &lt;a href="http://en.wikipedia.org/wiki/LAME"&gt;LAME&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The files I had were named using the following scheme:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;01 - Title of track 01.mp3&lt;br /&gt;02 - Title of track 02.mp3&lt;br /&gt;...&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;I used the BASH &lt;span style="font-family: courier new;"&gt;for-loop&lt;/span&gt; construct to process the files:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$ for A in *.mp3;\              # Process one mp3 at a time&lt;br /&gt;  do B=${A%.mp3};\              # Extract track number and title&lt;br /&gt;     C=${B#?? -};\              # Extract the title&lt;br /&gt;     D=${B%% - *};\             # Extract the track number&lt;br /&gt;     lame --vbr-new -V0 -q0\    # Variable-bitrate, high-quality&lt;br /&gt;          --mp3input\           # Inputs are MP3 files&lt;br /&gt;          --tt "$C"\            # ID3v2 tags: title&lt;br /&gt;          --ta 'Artist Name'\   # ID3v2 tags: artist&lt;br /&gt;          --tl 'Album Title'\   # ID3v2 tags: album&lt;br /&gt;          --ty 2007\            # ID3v2 tags: year&lt;br /&gt;          --tn "$D"\            # ID3v2 tags: track no.&lt;br /&gt;          --tg 'GENRE'\         # ID3v2 tags: genre&lt;br /&gt;          "$A" processed/"$A";\ # Keep filename and save in ./processed/&lt;br /&gt;  done&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Since no bit-rate bounds are explicitly provided, the re-encoded files can contain anything between 32kbps and 320kbps. The LAME man-page provides an extensive list of options and their meanings.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-2774408735737715440?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/2774408735737715440/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=2774408735737715440&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/2774408735737715440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/2774408735737715440'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2008/06/re-encoding-mp3-files-using-lame.html' title='Re-encoding MP3 Files using LAME'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-6076932727966500442</id><published>2008-03-26T16:32:00.003+01:00</published><updated>2008-03-26T16:52:31.157+01:00</updated><title type='text'>Processing files using 'find'</title><content type='html'>In its most basic form, &lt;span style="font-weight:bold;"&gt;find&lt;/span&gt; is often used to locate files that are subsequently piped through a complex set of commands for processing. However, this particular method is easily broken by files that contain spaces in their names.&lt;br /&gt;&lt;br /&gt;This is where the &lt;span style="font-style:italic;"&gt;'exec'&lt;/span&gt; option provided by &lt;span style="font-weight:bold;"&gt;find&lt;/span&gt; comes in handy. From the man-page:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;-exec command ;&lt;br /&gt;       Execute  command;  true  if 0 status is returned.  All following&lt;br /&gt;       arguments to find are taken to be arguments to the command until&lt;br /&gt;       an  argument  consisting of ‘;’ is encountered.  The string ‘{}’&lt;br /&gt;       is replaced by the current file name being processed  everywhere&lt;br /&gt;       it occurs in the arguments to the command, not just in arguments&lt;br /&gt;       where it is alone, as in some versions of find.  Both  of  these&lt;br /&gt;       constructions might need to be escaped (with a ‘\’) or quoted to&lt;br /&gt;       protect them from expansion by the shell.  See the EXAMPLES sec-&lt;br /&gt;       tion  for examples of the use of the ‘-exec’ option.  The speci-&lt;br /&gt;       fied command is run once for each matched file.  The command  is&lt;br /&gt;       executed  in  the  starting  directory.    There are unavoidable&lt;br /&gt;       security problems surrounding  use  of  the  -exec  option;  you&lt;br /&gt;       should use the -execdir option instead.&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;An example that recursively removes all *.doc files from the current directory would be:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$ find . -name \*.doc -exec rm {} \;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-6076932727966500442?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/6076932727966500442/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=6076932727966500442&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/6076932727966500442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/6076932727966500442'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2008/03/processing-files-using-find.html' title='Processing files using &apos;find&apos;'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-1022717611953872089</id><published>2007-12-03T19:45:00.000+01:00</published><updated>2008-02-12T01:04:42.360+01:00</updated><title type='text'>Saving Power with Linux</title><content type='html'>&lt;p&gt;An interesting site with numerous tips and tricks on power efficient computing using Linux:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a href="http://www.lesswatts.org"&gt;LessWatts&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;It is also home to the rather useful "&lt;a href="http://www.lesswatts.org/projects/powertop/"&gt;PowerTOP&lt;/a&gt;" tool. If the testimonials are anything to go by, everyone running a recent release of Linux should give this a try.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-1022717611953872089?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/1022717611953872089/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=1022717611953872089&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/1022717611953872089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/1022717611953872089'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2007/12/saving-power-with-linux.html' title='Saving Power with Linux'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-7043706750769844204</id><published>2007-12-01T15:29:00.000+01:00</published><updated>2007-12-01T15:32:01.332+01:00</updated><title type='text'>Embedded multimedia in LateX/Prosper</title><content type='html'>The &lt;a href="http://www.ctan.org/tex-archive/macros/latex/contrib/movie15/"&gt;movie15&lt;/a&gt; package by Alexander Grahn is useful for this purpose. The movies embedded, however, cannot be viewed with any PDF reader on Linux.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-7043706750769844204?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/7043706750769844204/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=7043706750769844204&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/7043706750769844204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/7043706750769844204'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2007/12/embedded-multimedia-in-latexprosper.html' title='Embedded multimedia in LateX/Prosper'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-2547507686319802216</id><published>2007-12-01T15:24:00.000+01:00</published><updated>2007-12-01T15:28:56.563+01:00</updated><title type='text'>Extracting Audio/Video</title><content type='html'>It's really easy to extract either audio or video from a multimedia file using '&lt;span style="font-weight:bold;"&gt;ffmpeg&lt;/span&gt;'. To extract audio only:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$ ffmpeg -i inputfile -vn -acodec copy outputfile&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;And for video only, replace '&lt;span style="font-style:italic;"&gt;-vn&lt;/span&gt;' with '&lt;span style="font-style:italic;"&gt;-an&lt;/span&gt;' and '&lt;span style="font-style:italic;"&gt;-acodec&lt;/span&gt;' with '&lt;span style="font-style:italic;"&gt;-vcodec&lt;/span&gt;'.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ffmpeg.mplayerhq.hu/"&gt;ffmpeg&lt;/a&gt; is also commonly used as a transcoding tool.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-2547507686319802216?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/2547507686319802216/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=2547507686319802216&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/2547507686319802216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/2547507686319802216'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2007/12/extracting-audiovideo.html' title='Extracting Audio/Video'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-1234503437859250355</id><published>2007-11-29T19:27:00.000+01:00</published><updated>2007-11-29T19:34:02.563+01:00</updated><title type='text'>SSH Blacklisting</title><content type='html'>After getting around 1500 failed ssh login attempts a day for a while on a server I manage, I decided to look into tools that automatically blacklist offending IPs.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.pettingers.org/code/sshblack.html"&gt;Sshblack&lt;/a&gt; fits the bill perfectly. A HOWTO (including an init-script) for REDHAT-like systems is available from the &lt;a href="http://wiki.oss-watch.ac.uk/InstallingSshblack"&gt;OSS Watch Wiki&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-1234503437859250355?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/1234503437859250355/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=1234503437859250355&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/1234503437859250355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/1234503437859250355'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2007/11/ssh-blacklisting.html' title='SSH Blacklisting'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-6357696976495547068</id><published>2007-10-22T17:47:00.000+02:00</published><updated>2007-10-22T17:56:30.368+02:00</updated><title type='text'>Logo in a LaTeX document header/footer</title><content type='html'>Easily accomplished using the '&lt;span style="font-style:italic;"&gt;fancyhdr&lt;/span&gt;' package:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;\usepackage{fancyhdr}&lt;br /&gt;\renewcommand{\headheight}{0.6in}&lt;br /&gt;\setlength{\headwidth}{\textwidth}&lt;br /&gt;\fancyhead[L]{}% empty left&lt;br /&gt;\fancyhead[R]{ % right&lt;br /&gt;   \includegraphics[height=0.53in]{img-file}&lt;br /&gt;}&lt;br /&gt;\pagestyle{fancy}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;All of that goes into the preamble of the document.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-6357696976495547068?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/6357696976495547068/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=6357696976495547068&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/6357696976495547068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/6357696976495547068'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2007/10/logo-in-latex-document-headerfooter.html' title='Logo in a LaTeX document header/footer'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-4444139114869070112</id><published>2007-10-01T14:07:00.000+02:00</published><updated>2007-10-01T14:40:11.289+02:00</updated><title type='text'>Duplicate identifiers with hyperref in pdflatex</title><content type='html'>The following warning is fairly common when hyperref is used with PDFLaTeX:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;! pdfTeX warning (ext4): destination with the same identifier (name{page.1}) ha&lt;br /&gt;s been already used, duplicate ignored&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The solution is to use the '&lt;span style="font-style:italic;"&gt;plainpages=false&lt;/span&gt;' option with hyperref.&lt;br /&gt;&lt;br /&gt;However, this appears to be insufficient for the article class with the '&lt;span style="font-style:italic;"&gt;titlepage&lt;/span&gt;' option. To remedy the warning the following is additionally needed around the \maketitle in the body of the document:&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;\renewcommand{\thepage}{\roman{page}}&lt;br /&gt;\maketitle&lt;br /&gt;\renewcommand{\thepage}{\arabic{page}}&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;By switching the style of page counter before and after the title page, any ambiguity regarding page numbers is resolved (title page is logically page 1 but LaTex re-initiates the counter on the actual page 1 - leading to 2 successive page 1s).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-4444139114869070112?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/4444139114869070112/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=4444139114869070112&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/4444139114869070112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/4444139114869070112'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2007/10/duplicate-identifiers-with-hyperref-in.html' title='Duplicate identifiers with hyperref in pdflatex'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-6730222056551731982</id><published>2007-08-10T00:04:00.002+02:00</published><updated>2009-07-16T18:28:02.367+02:00</updated><title type='text'>User installation of additional TeX/LaTeX classes and styles</title><content type='html'>When you are the sysadmin, you can simply drop the new class/style files under the system TeX path (e.g. &lt;span style="font-family:courier new;"&gt;/usr/share/texmf/tex/&lt;/span&gt;) and run &lt;span style="font-family:courier new;"&gt;'texhash'&lt;/span&gt; to have them automatically picked up. But what do you do when you are just a regular user?&lt;br /&gt;&lt;br /&gt;TeX/LaTeX looks at the TEXINPUTS environment variable to look for additional locations to search for included/referenced files. Therefore, new classes/styles can be easily added as follows:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Create a directory for the files:&lt;br /&gt;    &lt;pre&gt;$ mkdir -p $HOME/tex/latex&lt;/pre&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Place the new class files into that folder (each class can be in its own directory and contain subdirectories):&lt;br /&gt;    &lt;pre&gt;$ cp -a fancy-class $HOME/tex/latex/&lt;/pre&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Export the TEXINPUTS variable and also add it to your &lt;span style="font-family:courier new;"&gt;$HOME/.bash_profile&lt;/span&gt;:&lt;br /&gt;    &lt;pre&gt;$ export TEXINPUTS=.:$HOME/tex/latex//:$TEXINPUTS&lt;/pre&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;The &lt;span style="font-family:courier new;"&gt;'.'&lt;/span&gt; ensures that the working directory is included in the search path. The double-&lt;span style="font-family:courier new;"&gt;'//'&lt;/span&gt; tells bash to also include files in subdirectories of &lt;span style="font-family:courier new;"&gt;'$HOME/tex'&lt;/span&gt; recursively.&lt;br /&gt;&lt;br /&gt;New BibTeX files can also be added locally in a similar fashion. The variables to set are then BSTINPUTS and BIBINPUTS.&lt;br /&gt;&lt;br /&gt;The environment variable to set for MakeIndex styles is: INDEXSTYLE.&lt;br /&gt;&lt;br /&gt;Source: &lt;a href="http://ads.harvard.edu/pubs/bibtex/astronat/doc/html/astronat_2.html"&gt;AstroNat - Installation&lt;/a&gt; at &lt;a href="http://ads.harvard.edu/"&gt;The Smithsonian/NASA Astrophysics Data System&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;UPDATE [16 July 2009]&lt;/span&gt; The &lt;a href="http://www.tug.org/texinfohtml/kpathsea.html#TeX-support"&gt;Kpathsea manual&lt;/a&gt; provides a wealth of information about usable environment variables.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-6730222056551731982?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/6730222056551731982/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=6730222056551731982&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/6730222056551731982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/6730222056551731982'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2007/08/user-installation-of-additional-tex.html' title='User installation of additional TeX/LaTeX classes and styles'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-4121795391934943187</id><published>2007-08-10T00:00:00.000+02:00</published><updated>2007-08-10T00:04:09.125+02:00</updated><title type='text'>Network Security</title><content type='html'>A list of very interesting articles:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://backtrack.offensive-security.com/index.php?title=ExternalHowto"&gt;http://backtrack.offensive-security.com/index.php?title=ExternalHowto&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-4121795391934943187?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/4121795391934943187/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=4121795391934943187&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/4121795391934943187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/4121795391934943187'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2007/08/network-security.html' title='Network Security'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-5377268034420727860</id><published>2007-08-03T17:41:00.000+02:00</published><updated>2007-08-03T17:49:10.014+02:00</updated><title type='text'>Joining PDF Documents</title><content type='html'>A quick search on the web reveals that the simplest (and most available) command to do so is:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$ gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=finished.pdf file1.pdf file2.pdf&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Source: &lt;a href="http://www.newsforge.com/article.pl?sid=04/06/09/1844259"&gt;Putting together PDF files&lt;/a&gt; by &lt;a href="mailto:scott@scottnesbitt.net"&gt;Scott Nesbitt&lt;/a&gt; on &lt;a href="http://www.newsforge.com/"&gt;NewsForge&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-5377268034420727860?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/5377268034420727860/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=5377268034420727860&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/5377268034420727860'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/5377268034420727860'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2007/08/joining-pdf-documents.html' title='Joining PDF Documents'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-3618891135246912219</id><published>2007-05-22T10:13:00.000+02:00</published><updated>2007-05-22T10:43:11.095+02:00</updated><title type='text'>Named Pipes (FIFOs)</title><content type='html'>A &lt;a href="http://www2.linuxjournal.com/article/2156"&gt;named pipe&lt;/a&gt; is a special kind of file on *nix systems that can be used for inter-process communication. They behave like FIFOs and are created using the command "&lt;span style="font-style:italic;"&gt;mkfifo&lt;/span&gt;":&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$ mkfifo mypipe&lt;br /&gt;$ ls -l mypipe &lt;br /&gt;prw-rw-r-- 1 xxx xxx 0 May 22 10:18 mypipe&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The "p" in the attributes list indicates that this is indeed a pipe.&lt;br /&gt;&lt;br /&gt;A trivial example of its use may be to redirect the output of a command on a remote server to a pipe and then reading from that pipe from another host via ssh.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-3618891135246912219?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/3618891135246912219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=3618891135246912219&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/3618891135246912219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/3618891135246912219'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2007/05/named-pipes-fifos.html' title='Named Pipes (FIFOs)'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-3149907571571406503</id><published>2007-05-15T18:00:00.000+02:00</published><updated>2007-05-15T18:09:01.211+02:00</updated><title type='text'>Software Keyboard and Mouse (KM) Switcher</title><content type='html'>Stumbled across this great tool a few days ago:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://synergy2.sourceforge.net/"&gt;Synergy&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Description from the project homepage:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Synergy lets you easily share a single mouse and keyboard between multiple computers with different operating systems, each with its own display, without special hardware. It's intended for users with multiple computers on their desk since each system uses its own monitor(s).&lt;br /&gt;&lt;br /&gt;Redirecting the mouse and keyboard is as simple as moving the mouse off the edge of your screen. Synergy also merges the clipboards of all the systems into one, allowing cut-and-paste between systems. Furthermore, it synchronizes screen savers so they all start and stop together and, if screen locking is enabled, only one screen requires a password to unlock them all.&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-3149907571571406503?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/3149907571571406503/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=3149907571571406503&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/3149907571571406503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/3149907571571406503'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2007/05/software-keyboard-and-mouse-km-switcher.html' title='Software Keyboard and Mouse (KM) Switcher'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-4692854046290664450</id><published>2007-05-08T00:00:00.000+02:00</published><updated>2007-05-08T00:17:59.570+02:00</updated><title type='text'>Mass conversion of images</title><content type='html'>The following "one-liner" can be used to mass convert a given image format into another using the &lt;i&gt;convert&lt;/i&gt; (part of &lt;strong&gt;ImageMagick&lt;/strong&gt;) and &lt;i&gt;basename&lt;/i&gt; tools:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$ for A in $(ls *.$SRC_TYPE); do convert $A $(basename $A .$SRC_TYPE).$DST_TYPE; done&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;where &lt;span style="font-family:courier new;"&gt;$SRC_TYPE&lt;/span&gt; is the file suffix of the original images (e.g. &lt;i&gt;png&lt;/i&gt;) and &lt;span style="font-family:courier new;"&gt;$DST_TYPE&lt;/span&gt; is the file suffix of the type desired (e.g. &lt;i&gt;eps&lt;/i&gt;).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-4692854046290664450?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/4692854046290664450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=4692854046290664450&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/4692854046290664450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/4692854046290664450'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2007/05/mass-conversion-of-images.html' title='Mass conversion of images'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-5449173719263079966</id><published>2007-04-12T19:52:00.000+02:00</published><updated>2007-04-12T21:17:50.415+02:00</updated><title type='text'>Linux and DVD Regions</title><content type='html'>Typically, Linux DVD playback software are capable of decrypting (&lt;span style="font-weight:bold;"&gt;libdvdcss&lt;/span&gt; must be installed) and playing back DVDs from any region, irrespective of the region code of the drive. Therefore, there should be no need to change the region code of the drive to watch discs from a different region. Regardless, there exists a very handy program that allows the user to change the region code and view other relevant information such as the number of changes remaining. It is called "&lt;span style="font-weight:bold;"&gt;regionset&lt;/span&gt;" and is available for Fedora from the Extras repository. The project website is:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://linvdr.org/projects/regionset/"&gt;http://linvdr.org/projects/regionset/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There is also a useful article on Linux.com about DVD playback:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.linux.com/howtos/DVD-Playback-HOWTO/"&gt;DVD Playback HOWTO&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-5449173719263079966?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/5449173719263079966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=5449173719263079966&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/5449173719263079966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/5449173719263079966'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2007/04/linux-and-dvd-regions.html' title='Linux and DVD Regions'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-9029300736198856716</id><published>2007-03-15T10:32:00.000+01:00</published><updated>2007-03-18T11:15:53.909+01:00</updated><title type='text'>Gnome automount options</title><content type='html'>On a default Fedora installation, Gnome will automatically mount (with some default options) any recognized volumes as soon as an external storage device is plugged in. While the defaults might be fine in general, sometimes it is necessary to supply some more options.&lt;br /&gt;&lt;br /&gt;The tool responsible for automating the mount (&lt;span style="font-family: courier new;"&gt;gnome-volume-manager&lt;/span&gt;) gets additional options from the &lt;span style="font-style:italic;"&gt;/system/storage/default_options/$fstype$/mount_options&lt;/span&gt; key of &lt;span style="font-weight:bold;"&gt;gconf&lt;/span&gt; -- the Gnome "system registry". One can check/modify existing entries (one a per user basis) by running:&lt;br /&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;$ gconf-editor /system/storage/default_options &amp;&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;This should launch the graphical configuration editor with the &lt;span style="font-style:italic;"&gt;default_options&lt;/span&gt; key selected. Under this key are the entries for different filesystems. Default mount options can then be changed by selecting the desired filesystem and editing the &lt;span style="font-style:italic;"&gt;mount_options&lt;/span&gt; key.&lt;br /&gt;&lt;br /&gt;If a required filesystem type is not listed, then it can be added by using the &lt;span style="font-family: courier new;"&gt;gconftool-2&lt;/span&gt; utility. E.g. if we wanted to add the &lt;span style="font-weight:bold;"&gt;ext3&lt;/span&gt; filesystem to the configuration database with the options "&lt;span style="font-weight:bold;"&gt;sync&lt;/span&gt;" and "&lt;span style="font-weight:bold;"&gt;uid=&lt;/span&gt;", we would run the command:&lt;br /&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;$ gconftool-2 -t list --list-type string -s /system/storage/default_options/ext3/mount_options "[sync,uid=]"&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;Next time an external volume is plugged in, it will be mounted with the additional options specified! It should be noted that regardless of the options supplied via gconf, some mount options are always present: &lt;span style="font-weight:bold;"&gt;r(o|w),noexec,nosuid,nodev&lt;/span&gt;. At the moment I do not know how to change them.&lt;br /&gt;&lt;br /&gt;The main motivation for finding out about the defaults is that I wanted to add "&lt;span style="font-weight:bold;"&gt;sync&lt;/span&gt;" as a default option. This causes data to be written immediately to the device, instead of being buffered first -- a useful option to have for external devices. It should minimized data loss in case of an accidental removal (without running &lt;span style="font-family: courier new;"&gt;umount&lt;/span&gt; first). However, it should also be noted that for solid state drives (e.g. flash), this may result in a shortening of service life and poorer performance.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Update [Sun Mar 18, 2007]:&lt;/span&gt;&lt;br /&gt;I've done some rudimentary throughput performance testing with both the &lt;span style="font-weight:bold;"&gt;sync&lt;/span&gt; and &lt;span style="font-weight:bold;"&gt;async&lt;/span&gt; modes and the performance hit with &lt;span style="font-weight:bold;"&gt;sync&lt;/span&gt; appears to be quite severe (at least 20 times slower than &lt;span style="font-weight:bold;"&gt;async&lt;/span&gt;) -- even with a high performance HDD as the target. In light of this, I am removing &lt;span style="font-weight:bold;"&gt;sync&lt;/span&gt; from the list of default options. Given the type of data I'm likely to store on the device, speed is certainly more valuable than data integrity.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Test results:&lt;/span&gt;&lt;br /&gt;Testing was carried out on a FAT32 volume. For each mode, both the transfer time and the subsequent un-mount time (indicating the time needed to flush the buffer) are shown.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;async:&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$ time dd if=/dev/zero of=/tmp/usb/dummy bs=8k count=130000 &amp;&amp; time sudo umount /tmp/usb/&lt;br /&gt;130000+0 records in&lt;br /&gt;130000+0 records out&lt;br /&gt;1064960000 bytes (1.1 GB) copied, 45.9035 seconds, 23.2 MB/s&lt;br /&gt;&lt;br /&gt;real    0m46.026s&lt;br /&gt;user    0m0.035s&lt;br /&gt;sys     0m2.915s&lt;br /&gt;&lt;br /&gt;real    0m11.680s&lt;br /&gt;user    0m0.003s&lt;br /&gt;sys     0m0.263s&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;sync:&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$ time dd if=/dev/zero of=/tmp/usb/dummy bs=8k count=130000 &amp;&amp; time sudo umount /tmp/usb/&lt;br /&gt;130000+0 records in&lt;br /&gt;130000+0 records out&lt;br /&gt;1064960000 bytes (1.1 GB) copied, 969.384 seconds, 1.1 MB/s&lt;br /&gt;&lt;br /&gt;real    16m13.525s&lt;br /&gt;user    0m0.048s&lt;br /&gt;sys     0m12.156s&lt;br /&gt;&lt;br /&gt;real    0m0.842s&lt;br /&gt;user    0m0.004s&lt;br /&gt;sys     0m0.199s&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-9029300736198856716?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/9029300736198856716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=9029300736198856716&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/9029300736198856716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/9029300736198856716'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2007/03/gnome-automount-options.html' title='Gnome automount options'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-9135622527374031576</id><published>2007-03-13T21:16:00.000+01:00</published><updated>2007-03-13T21:33:58.985+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sopcast'/><category scheme='http://www.blogger.com/atom/ns#' term='streaming video'/><category scheme='http://www.blogger.com/atom/ns#' term='vlc'/><title type='text'>Streaming TV!!</title><content type='html'>I'm sorry if this is illegal - but being stuck in Germany, I had to do something about not being able to watch the &lt;a href="http://en.wikipedia.org/wiki/2007_Cricket_World_Cup"&gt;Cricket World Cup&lt;/a&gt; and I am happy to say I found a solution!&lt;br /&gt;&lt;br /&gt;Here's what you need to do:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Download "sopcast" from &lt;a href="http://www.sopcast.com/download/"&gt;here&lt;/a&gt; and put it in a suitable place&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;a href="http://www.sopcast.com/download/"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Download the stdc++5 library also from &lt;a href="http://www.sopcast.com/download/"&gt;here&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Extract the files from the library as explained in the README&lt;/li&gt;&lt;/ul&gt;Now you're more-or-less done. To see a list of available channels, go &lt;a href="http://www.sopcast.org/channel/"&gt;here&lt;/a&gt;. As you can see, the sky is the limit. If you want to view a particular channel, let's say ESPN, copy the ID number of the channel (which at the time of writing this post was 6003). Now navigate to the place you extracted the sp-sc and execute&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$ ./sp-sc sop://broker.sopcast.com:3912/$channel_id$ 3908 8908 &gt; /dev/null &amp;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Here, the 3912 might vary, so check the URL of the channel anyway. Replace &lt;span style="font-family: courier new;"&gt;$channel_id$&lt;/span&gt; with the channel ID. Here 3908 is the local port and 8908 is the player port. Now fire up VLC or any player capable of opening a network stream and open the http url http://localhost:8908/tv.asf.&lt;br /&gt;&lt;br /&gt;That's it. Enjoy your show. Oh, if you want to "change" the channel, I can't think of any other way other than doing "&lt;span style="font-family: courier new;"&gt;killall -9 sp-sc&lt;/span&gt;" before repeating the process.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-9135622527374031576?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/9135622527374031576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=9135622527374031576&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/9135622527374031576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/9135622527374031576'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2007/03/streaming-tv.html' title='Streaming TV!!'/><author><name>Zubin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_pa_0Kzu2DKo/S-LHG5WyUiI/AAAAAAAALOY/QPEe2mwjz3I/S220/zb.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-7787190929247649788</id><published>2007-03-08T22:19:00.000+01:00</published><updated>2007-03-09T11:45:50.224+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='screen'/><title type='text'>Using screen</title><content type='html'>My God! I can't believe I didn't put more effort into looking into screen earlier. This is such a wonderful utility. Just imagine ssh-ing to a machine and having your work go on even if you face a network disconnection. Wonderful stuff!&lt;br /&gt;To start a screen, type "&lt;span style="font-family:courier new;"&gt;screen&lt;/span&gt;" at the prompt.&lt;br /&gt;You have now opened a screen. It can support multiple windows. So if you have multiple tasks, you need not open many different terminals. Try it out. Run &lt;span style="font-family:courier new;"&gt;top&lt;/span&gt; in the current screen. Now, open a new window by the key sequence "&lt;span style="font-family:courier new;"&gt;ctrl-a&lt;/span&gt;" "&lt;span style="font-family:courier new;"&gt;c&lt;/span&gt;". Each window can support a task as a normal shell would. To scroll through the windows, use "&lt;span style="font-family:courier new;"&gt;ctrl-a&lt;/span&gt;" "&lt;span style="font-family:courier new;"&gt;p&lt;/span&gt;" for the previous window or "&lt;span style="font-family:courier new;"&gt;ctrl-a&lt;/span&gt;" "&lt;span style="font-family:courier new;"&gt;n&lt;/span&gt;" for the next one. If you go back to the first window, you'll see top still running.&lt;br /&gt;If you desire, you can also open several screens. In case you have ssh-ed to a machine and you'd like to log out but still keep your process running, you need to detach the screen before logging out. In order to detach a screen, use the key sequence "&lt;span style="font-family:courier new;"&gt;ctrl-a&lt;/span&gt;" "&lt;span style="font-family:courier new;"&gt;d&lt;/span&gt;". You will now be returned to the shell. To see the status of all the screens, do "&lt;span style="font-family:courier new;"&gt;screen -ls&lt;/span&gt;". The output looks something like:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;[silverstreak@silverstreak Desktop]$ screen -ls&lt;br /&gt;There are screens on:&lt;br /&gt;       22077.pts-0.silverstreak        (Detached)&lt;br /&gt;       22153.pts-0.silverstreak        (Detached)&lt;br /&gt;2 Sockets in /var/run/screen/S-silverstreak.&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Since both screens are detached, it's ok to log off without losing any work. When you log back on, the screens will still remain detached. In order to re-attach a screen (let's say we want to re-attach the first one in the list), do "&lt;span style="font-family:courier new;"&gt;screen -r 22077.pts-0.silverstreak&lt;/span&gt;". Very simple and very handy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-7787190929247649788?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/7787190929247649788/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=7787190929247649788&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/7787190929247649788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/7787190929247649788'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2007/03/using-screen.html' title='Using screen'/><author><name>Zubin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_pa_0Kzu2DKo/S-LHG5WyUiI/AAAAAAAALOY/QPEe2mwjz3I/S220/zb.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-6205639492510586659</id><published>2007-03-08T15:18:00.000+01:00</published><updated>2007-03-08T15:36:28.630+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='man page'/><category scheme='http://www.blogger.com/atom/ns#' term='lpr'/><category scheme='http://www.blogger.com/atom/ns#' term='man -t'/><category scheme='http://www.blogger.com/atom/ns#' term='printing'/><title type='text'>Printing man pages</title><content type='html'>&lt;span style=";font-family:arial;font-size:100%;"  &gt;I never did this because I was too afraid about how many commands it would involve. Actually, it's extremely simple!&lt;br /&gt;&lt;br /&gt;Let's say you have a printer installed by the name of "printer_1". If you want to print the contents of the man page related to chmod on this printer, do the following:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:arial;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;&lt;pre&gt;&lt;br /&gt;$ man -t chmod | lpr -P &lt;span style="font-family: arial;"&gt;printer_1&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left; font-weight: bold;"&gt;&lt;strong&gt;&lt;span style="font-weight: normal;"&gt;Here, you are piping the contents of the chmod man page through &lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-weight: normal;"&gt;lpr to the installed printer. If you don't use a printer name, the default printer will be used.&lt;br /&gt;&lt;br /&gt;If instead of printing the contents out, you want to make a pdf file out of them, simply do&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-weight: normal;font-family:arial;" &gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: normal;"&gt;$ &lt;/span&gt;&lt;strong style="font-weight: normal;"&gt;man -t chmod &gt; chmod.ps &amp;&amp;amp; ps2pdf chmod.ps &amp;&amp;amp; rm chmod.ps&lt;/strong&gt;&lt;span style="font-weight: normal;font-family:monospace;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-6205639492510586659?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/6205639492510586659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=6205639492510586659&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/6205639492510586659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/6205639492510586659'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2007/03/printing-man-pages.html' title='Printing man pages'/><author><name>Zubin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_pa_0Kzu2DKo/S-LHG5WyUiI/AAAAAAAALOY/QPEe2mwjz3I/S220/zb.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-6912982645870861468</id><published>2007-03-02T16:39:00.000+01:00</published><updated>2007-03-02T16:59:51.318+01:00</updated><title type='text'>MATLAB - Interrupting function execution</title><content type='html'>MATLAB itself does not provide any way of arbitrarily interrupting/pausing a function at mid-execution to examine the internal function stack/variables. It is a pity since such a mechanism would be an extremely valuable debugging tool.&lt;br /&gt;&lt;br /&gt;Finally, I realized that this is not as impossible as it seems. In fact, it is EXTREMELY simple! All that is required are four lines of code in any script/function:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;[statcode, result] = system('ls sometoken');&lt;br /&gt;if statcode == 0&lt;br /&gt;   keyboard&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The &lt;span style="font-weight:bold;"&gt;system&lt;/span&gt; command is used to run system console commands. Here, a simple check is made for the existence of the file 'sometoken' in the current directory. If the file exists, &lt;span style="font-style:italic;"&gt;statcode&lt;/span&gt; is set to zero and the &lt;span style="font-weight:bold;"&gt;if&lt;/span&gt; condition is satisfied. The &lt;span style="font-weight:bold;"&gt;keyboard&lt;/span&gt; command is then executed which causes MATLAB to pause execution and return control to the command line! In order to continue execution, 'sometoken' must be deleted/removed from the current directory and the command &lt;span style="font-weight:bold;"&gt;return&lt;/span&gt; must be issued.&lt;br /&gt;&lt;br /&gt;The best place for this code is perhaps in any loop that might exist in the MATLAB script/function. Then, to cause execution to pause, one simply needs to create a file 'sometoken' in the current directory.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-6912982645870861468?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/6912982645870861468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=6912982645870861468&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/6912982645870861468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/6912982645870861468'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2007/03/matlab-interrupting-function-execution.html' title='MATLAB - Interrupting function execution'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-6502182555484306258</id><published>2007-02-27T19:31:00.000+01:00</published><updated>2007-02-27T19:52:47.021+01:00</updated><title type='text'>Linux NFSv4 Howto</title><content type='html'>NFS is commonly used to share files on Linux. NFSv4 is the latest protocol and circumvents firewall related complications experienced with NFSv3 by requiring only ONE fixed tcp port open on the server side. It is surprisingly easy to set up:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Server side:&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Edit /etc/exports and add directories to be exported (fsid=0 is a mandatory option for nfs4) and authorized clients (check the &lt;span style="font-style:italic;"&gt;exports&lt;/span&gt; manpage)&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Open up tcp port 2049 on the firewall&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;# /etc/init.d/nfs restart&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;# chkconfig --level 345 nfs on&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Client side:&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;# mount -t nfs4 -o rw,intr,hard   server:/   /mount/point&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;It is not necessary to specify the exact path on the "&lt;span style="font-style:italic;"&gt;server:/&lt;/span&gt;" with NFSv4.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Useful sites:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.vanemery.com/Linux/NFSv4/NFSv4-no-rpcsec.html"&gt;Learning NFSv4 with Fedora Core 2&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/sysadmin-guide/ch-nfs.html"&gt;RHEL4 NFS manual&lt;/a&gt;&lt;br /&gt;&lt;a href="http://nfs.sourceforge.net/nfs-howto/"&gt;Linux NFS-HOWTO&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-6502182555484306258?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/6502182555484306258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=6502182555484306258&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/6502182555484306258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/6502182555484306258'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2007/02/linux-nfsv4-howto.html' title='Linux NFSv4 Howto'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-5930211385555843284</id><published>2007-02-27T13:11:00.000+01:00</published><updated>2007-03-02T17:12:22.945+01:00</updated><title type='text'>Linux - Disable Shutdown For Normal Users</title><content type='html'>Very useful for servers/shared machines:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ubuntu.wordpress.com/2006/03/20/disable-shutdown-for-normal-users/"&gt;Disable Shutdown For Normal Users&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Addendum:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Setting file mode for &lt;span style="font-family:courier new;"&gt;/etc/acpi/events/power.conf&lt;/span&gt; to "&lt;span style="font-family:courier new;"&gt;0000&lt;/span&gt;" is not sufficient to disable the power button. It's better to:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt; &lt;li&gt; Uninstall &lt;span style="font-family:courier new;"&gt;gnome-power-manager&lt;/span&gt;&lt;/li&gt;&lt;br /&gt; &lt;li&gt; Leave file permissions for &lt;span style="font-family:courier new;"&gt;power.conf&lt;/span&gt; unchanged and simply set the &lt;span style="font-family:courier new;"&gt;action=&lt;/span&gt; line to an empty string&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;It is also advisable to set the local login screen style to &lt;span style="font-style:italic;"&gt;plain&lt;/span&gt; in &lt;span style="font-weight:bold;"&gt;gdmsetup&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-5930211385555843284?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/5930211385555843284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=5930211385555843284&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/5930211385555843284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/5930211385555843284'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2007/02/linux-disable-shutdown-for-normal-users.html' title='Linux - Disable Shutdown For Normal Users'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-2111065734044064599</id><published>2007-02-27T11:07:00.000+01:00</published><updated>2007-02-27T11:18:33.861+01:00</updated><title type='text'>Linux authentication using LDAP</title><content type='html'>There's a lot of information out there but none really provide a step-by-step guide that would be useful to a novice:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt; &lt;li&gt;&lt;a href="http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/ref-guide/ch-ldap.html"&gt;RHEL4 LDAP manual&lt;/a&gt;&lt;/li&gt;&lt;br /&gt; &lt;li&gt;&lt;a href="http://tldp.org/HOWTO/LDAP-HOWTO/"&gt;LDAP Howto from TLDP&lt;/a&gt;&lt;/li&gt;&lt;br /&gt; &lt;li&gt;&lt;a href="http://www.openldap.org/doc/admin23/quickstart.html"&gt;OpenLDAP Quickstart Guide&lt;/a&gt;&lt;/li&gt;&lt;br /&gt; &lt;li&gt;&lt;a href="http://www.openldap.org/doc/admin23/"&gt;OpenLDAP 2.3 Admin Guide&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;This one however, sheds some light on the bigger picture:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.howtoforge.com/linux_ldap_authentication"&gt;LDAP Authentication In Linux&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Once the initial configuration of the server is complete, &lt;a href="http://www-unix.mcs.anl.gov/~gawor/ldap/"&gt;LDAP Browser/Editor&lt;/a&gt; serves as a very useful client/admin tool.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-2111065734044064599?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/2111065734044064599/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=2111065734044064599&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/2111065734044064599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/2111065734044064599'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2007/02/linux-authentication-using-ldap.html' title='Linux authentication using LDAP'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-8959928067421075570</id><published>2007-02-02T15:50:00.000+01:00</published><updated>2007-02-02T15:53:32.932+01:00</updated><title type='text'>Replacing broken laptop displays</title><content type='html'>Notebook LCD replacement need not be a costly affair:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mobilityguru.com/2006/02/24/how_to_replace_a_broken_laptop_or_notebook_display/index.html"&gt;How To Replace A Broken Laptop or Notebook Display&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.screentekinc.com/"&gt;ScreenTek&lt;/a&gt; is apparently a leading manufacturer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-8959928067421075570?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/8959928067421075570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=8959928067421075570&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/8959928067421075570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/8959928067421075570'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2007/02/replacing-broken-laptop-displays.html' title='Replacing broken laptop displays'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-6267356572451730778</id><published>2007-01-25T11:01:00.000+01:00</published><updated>2007-01-25T11:04:36.513+01:00</updated><title type='text'>More LaTeX Resources</title><content type='html'>&lt;a href="http://myitcv.org.uk/latex/"&gt;http://myitcv.org.uk/latex/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-6267356572451730778?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/6267356572451730778/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=6267356572451730778&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/6267356572451730778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/6267356572451730778'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2007/01/more-latex-resources.html' title='More LaTeX Resources'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-116410028273162632</id><published>2006-11-21T10:01:00.000+01:00</published><updated>2006-11-21T10:13:18.413+01:00</updated><title type='text'>Cross-platform filesystem access</title><content type='html'>Looks like the &lt;span style="font-weight:bold;"&gt;ntfs-3g&lt;/span&gt; driver has already gained a lot of popularity and is quite easy to use:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ntfs-3g.org/"&gt;NTFS-3G Read/Write Driver&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The driver itself is supposedly available from the Fedora Extras repository for FC6 onwards. Completely safe read/write access to NTFS drives from Linux -- now that's a dream come true!&lt;br /&gt;&lt;br /&gt;In the meanwhile, it looks like there's also a windows Ext2 file-system driver that allows full read/write access to Ext2/3 volumes:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://fs-driver.org/index.html"&gt;Ext2 Installable File System For Windows&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Of course, one of the drawbacks here is that the Ext3 volume is mounted as Ext2 -- so there is no journaling support. In case of a 'dirty' unmount &lt;span style="font-weight:bold;"&gt;e2fsck&lt;/span&gt; will have to be run. The other drawback is the fact that is won't work with LVM.&lt;br /&gt;&lt;br /&gt;So, these drivers really open up a lot of choices. But I guess the best option is to have the shared drive as NTFS since the &lt;span style="font-weight:bold;"&gt;ntfs-3g&lt;/span&gt; driver takes care of journaling.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-116410028273162632?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/116410028273162632/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=116410028273162632&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/116410028273162632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/116410028273162632'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2006/11/cross-platform-filesystem-access.html' title='Cross-platform filesystem access'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-115917671352902312</id><published>2006-09-25T11:27:00.000+02:00</published><updated>2006-09-25T11:32:12.570+02:00</updated><title type='text'>BASH as a simple calculator</title><content type='html'>As long as you are satisfied with integer results:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;[darkknight@darkworld ~]$ echo $[32 * 98]&lt;br /&gt;3136&lt;br /&gt;[darkknight@darkworld ~]$ echo $[332 / 98]&lt;br /&gt;3&lt;br /&gt;[darkknight@darkworld ~]$ echo $[29 + 56]&lt;br /&gt;85&lt;br /&gt;[darkknight@darkworld ~]$ echo $[29 - 156]&lt;br /&gt;-127&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-115917671352902312?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/115917671352902312/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=115917671352902312&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/115917671352902312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/115917671352902312'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2006/09/bash-as-simple-calculator.html' title='BASH as a simple calculator'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-115624378422418936</id><published>2006-08-22T12:46:00.000+02:00</published><updated>2006-08-22T12:49:44.236+02:00</updated><title type='text'>The Comprehensive LaTeX Symbol List</title><content type='html'>A handy document listing all the symbols possible with latex:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ctan.org/tex-archive/info/symbols/comprehensive/"&gt;CTAN Page&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A copy is also available &lt;a href="http://pandora.iu-bremen.de/~mafgani/stuff/symbols-a4.pdf"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-115624378422418936?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/115624378422418936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=115624378422418936&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/115624378422418936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/115624378422418936'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2006/08/comprehensive-latex-symbol-list.html' title='The Comprehensive LaTeX Symbol List'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-115437861936763633</id><published>2006-07-31T22:29:00.005+02:00</published><updated>2009-07-16T16:15:14.907+02:00</updated><title type='text'>Cropping a PDF Document</title><content type='html'>Easily accomplished using &lt;span style="font-style: italic;"&gt;&lt;a href="http://www.die.net/doc/linux/man/man1/pdftops.1.html"&gt;pdftops&lt;/a&gt;&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$ pdftops -paperw WIDTH  -paperh HEIGHT -noshrink -expand document.pdf &amp;amp;&amp;amp; ps2pdf document.ps&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;WIDTH and HEIGHT are in points -- they basically specify the dimensions of the image to be cropped.&lt;br /&gt;&lt;br /&gt;Content is extracted from the center of the page. This technique is specially useful as a bypass for using &lt;span style="font-style: italic;"&gt;&lt;a href="http://www.ctan.org/tex-archive/help/Catalogue/entries/psfrag.html"&gt;psfrag&lt;/a&gt;&lt;/span&gt; with pdfLatex:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Save EPS figure with TAGS&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Create a very simple tex document that simply includes the figure (centered) with psfrag replacements and run latex -&gt; dvips -&gt; ps2pdf&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Follow the step above to crop out the figure.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;The cropped out figure will have the TAGS replaced and be in PDF format -- ready to be used with pdfLatex!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;UPDATE [16 July 2009]&lt;/span&gt; It looks like &lt;span style="font-style: italic;"&gt;pdfcrop&lt;/span&gt; might actually be a better option:&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;$ pdfcrop --help&lt;br /&gt;PDFCROP 1.5, 2004/06/24 - Copyright (c) 2002, 2004 by Heiko Oberdiek.&lt;br /&gt;Syntax:   pdfcrop [options] &amp;lt;input[.pdf]&amp;gt; [output file]&lt;br /&gt;Function: Margins are calculated and removed for each page in the file.&lt;br /&gt;Options:                                                    (defaults:)&lt;br /&gt;  --help              print usage&lt;br /&gt;  --(no)verbose       verbose printing                      (false)&lt;br /&gt;  --(no)debug         debug informations                    (false)&lt;br /&gt;  --gscmd &amp;lt;name&amp;gt;      call of ghostscript                   (gs)&lt;br /&gt;  --pdftexcmd &amp;lt;name&amp;gt;  call of pdfTeX                        (pdftex)&lt;br /&gt;  --margins "&amp;lt;left&amp;gt; &amp;lt;top&amp;gt; &amp;lt;right&amp;gt; &amp;lt;bottom&amp;gt;"                 (0 0 0 0)&lt;br /&gt;                      add extra margins, unit is bp. If only one number is&lt;br /&gt;                      given, then it is used for all margins, in the case&lt;br /&gt;                      of two numbers they are also used for right and bottom.&lt;br /&gt;  --(no)clip          clipping support, if margins are set  (false)&lt;br /&gt;  --(no)hires         using `%%HiResBoundingBox'            (false)&lt;br /&gt;                      instead of `%%BoundingBox'&lt;br /&gt;  --papersize &amp;lt;foo&amp;gt;   parameter for gs's -sPAPERSIZE=&amp;lt;foo&amp;gt;,&lt;br /&gt;                      use only with older gs versions &amp;lt;7.32 ()&lt;br /&gt;Examples:&lt;br /&gt;  pdfcrop --margins 10 input.pdf output.pdf&lt;br /&gt;  pdfcrop --margins '5 10 5 20' --clip input.pdf output.pdf&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The tool comes as a part of the 'tetex' package.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-115437861936763633?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/115437861936763633/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=115437861936763633&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/115437861936763633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/115437861936763633'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2006/07/cropping-pdf-document.html' title='Cropping a PDF Document'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-115306744371500907</id><published>2006-07-16T18:19:00.000+02:00</published><updated>2006-07-16T18:30:43.726+02:00</updated><title type='text'>Finally, NTFS write support!</title><content type='html'>&lt;a href="http://slashdot.org"&gt;Slashdot&lt;/a&gt; ran a story &lt;a href="http://developers.slashdot.org/article.pl?sid=06/07/15/1346250"&gt;yesterday&lt;/a&gt; about the new fully open source NTFS driver that has full read and &lt;span style="font-weight: bold; color: rgb(255, 0, 0);font-size:150%;" &gt;write support&lt;/span&gt; for NTFS volumes. Although still in BETA phase it looks really promising. Too bad it doesn't work on 64-bit systems yet. I'm definitely keeping my eyes peeled for this one ..&lt;br /&gt;&lt;br /&gt;More details and download links here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sourceforge.net/mailarchive/forum.php?thread_id=23836054&amp;amp;forum_id=2697"&gt;[announcement] ntfs-3g: open source read-write driver&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-115306744371500907?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/115306744371500907/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=115306744371500907&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/115306744371500907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/115306744371500907'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2006/07/finally-ntfs-write-support.html' title='Finally, NTFS write support!'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-115306619747951414</id><published>2006-07-16T17:59:00.000+02:00</published><updated>2006-07-16T18:11:22.033+02:00</updated><title type='text'>Creating directory hierarchies in bash</title><content type='html'>The BASH '&lt;span style="font-style:italic;"&gt;brace expansion&lt;/span&gt;' feature can be used to create whole directory trees using a single command. From the man page for BASH:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Brace Expansion&lt;br /&gt;       Brace expansion is a mechanism by which arbitrary strings may be gener‐&lt;br /&gt;       ated.   This  mechanism is similar to pathname expansion, but the file‐&lt;br /&gt;       names generated need not exist.  Patterns to be brace expanded take the&lt;br /&gt;       form of an optional preamble, followed by either a series of comma-sep‐&lt;br /&gt;       arated strings or a sequence expression between a pair of braces,  fol‐&lt;br /&gt;       lowed  by  an  optional  postscript.   The preamble is prefixed to each&lt;br /&gt;       string contained within the braces, and the postscript is then appended&lt;br /&gt;       to each resulting string, expanding left to right.&lt;br /&gt;&lt;br /&gt;       Brace  expansions  may  be nested.  The results of each expanded string&lt;br /&gt;       are not sorted;  left  to  right  order  is  preserved.   For  example,&lt;br /&gt;       a{d,c,b}e expands into `ade ace abe'.&lt;br /&gt;&lt;br /&gt;       A  sequence  expression takes the form {x..y}, where x and y are either&lt;br /&gt;       integers or single characters.  When integers are supplied, the expres‐&lt;br /&gt;       sion  expands  to each number between x and y, inclusive.  When charac‐&lt;br /&gt;       ters are supplied, the expression expands  to  each  character  lexico‐&lt;br /&gt;       graphically between x and y, inclusive.  Note that both x and y must be&lt;br /&gt;       of the same type.&lt;br /&gt;&lt;br /&gt;       Brace expansion is performed before any other expansions, and any char‐&lt;br /&gt;       acters  special to other expansions are preserved in the result.  It is&lt;br /&gt;       strictly textual.  Bash does not apply any syntactic interpretation  to&lt;br /&gt;       the context of the expansion or the text between the braces.&lt;br /&gt;&lt;br /&gt;       A  correctly-formed  brace  expansion must contain unquoted opening and&lt;br /&gt;       closing braces, and at least one unquoted comma  or  a  valid  sequence&lt;br /&gt;       expression.   Any incorrectly formed brace expansion is left unchanged.&lt;br /&gt;       A { or , may be quoted with a backslash to prevent its being considered&lt;br /&gt;       part  of  a brace expression.  To avoid conflicts with parameter expan‐&lt;br /&gt;       sion, the string ${ is not considered eligible for brace expansion.&lt;br /&gt;&lt;br /&gt;       This construct is typically used as shorthand when the common prefix of&lt;br /&gt;       the strings to be generated is longer than in the above example:&lt;br /&gt;&lt;br /&gt;              mkdir /usr/local/src/bash/{old,new,dist,bugs}&lt;br /&gt;       or&lt;br /&gt;              chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}&lt;br /&gt;&lt;br /&gt;       Brace  expansion  introduces  a  slight incompatibility with historical&lt;br /&gt;       versions of sh.  sh does not treat opening or closing braces  specially&lt;br /&gt;       when  they  appear as part of a word, and preserves them in the output.&lt;br /&gt;       Bash removes braces from words as a  consequence  of  brace  expansion.&lt;br /&gt;       For  example,  a word entered to sh as file{1,2} appears identically in&lt;br /&gt;       the output.  The same word is output as file1 file2 after expansion  by&lt;br /&gt;       bash.   If strict compatibility with sh is desired, start bash with the&lt;br /&gt;       +B option or disable brace expansion with the +B option to the set com‐&lt;br /&gt;       mand (see SHELL BUILTIN COMMANDS below).&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;So, for example:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$ mkdir -p root/{1/{1.1,1.2,1.3},2,3/{3.1,3.2/{3.2.1,3.2.2}}}&lt;br /&gt;&lt;br /&gt;$ tree&lt;br /&gt;.&lt;br /&gt;`-- root&lt;br /&gt;    |-- 1&lt;br /&gt;    |   |-- 1.1&lt;br /&gt;    |   |-- 1.2&lt;br /&gt;    |   `-- 1.3&lt;br /&gt;    |-- 2&lt;br /&gt;    `-- 3&lt;br /&gt;        |-- 3.1&lt;br /&gt;        `-- 3.2&lt;br /&gt;            |-- 3.2.1&lt;br /&gt;            `-- 3.2.2&lt;br /&gt;&lt;br /&gt;11 directories, 0 files&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The '-p' option to &lt;span style="font-weight:bold;"&gt;mkdir&lt;/span&gt; makes it create the parent directories if they do not exist.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-115306619747951414?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/115306619747951414/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=115306619747951414&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/115306619747951414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/115306619747951414'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2006/07/creating-directory-hierarchies-in-bash.html' title='Creating directory hierarchies in bash'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-115264125978845267</id><published>2006-07-11T19:57:00.000+02:00</published><updated>2006-07-11T20:07:39.853+02:00</updated><title type='text'>Working with LaTeX &amp; KPDF</title><content type='html'>KPDF is particularly handy in "watch file" mode. To activate, go to:&lt;br /&gt;&lt;br /&gt;Settings -&gt; Configure KPDF...&lt;br /&gt;&lt;br /&gt;and check "Watch file" in the General section.&lt;br /&gt;&lt;br /&gt;This causes KPDF to watch the file for changes and reload it automatically. Really handy when you don't want to keep navigating to the old page after an edit and reload ..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-115264125978845267?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/115264125978845267/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=115264125978845267&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/115264125978845267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/115264125978845267'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2006/07/working-with-latex-kpdf.html' title='Working with LaTeX &amp; KPDF'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-115079693451940453</id><published>2006-06-20T11:46:00.000+02:00</published><updated>2006-06-20T11:48:54.536+02:00</updated><title type='text'>Create a matrix with specific diagonal elements in MATLAB</title><content type='html'>Stupid, but lest I forget how to do this once again:&lt;br /&gt;&lt;br /&gt;For a 4x4 matrix with uniformly distributed random elements with infinity on the diagonal.&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;&gt;&gt; A=diag(inf(4,1))+rand(4,4)&lt;br /&gt;&lt;/PRE&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-115079693451940453?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/115079693451940453/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=115079693451940453&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/115079693451940453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/115079693451940453'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2006/06/create-matrix-with-specific-diagonal.html' title='Create a matrix with specific diagonal elements in MATLAB'/><author><name>Zubin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_pa_0Kzu2DKo/S-LHG5WyUiI/AAAAAAAALOY/QPEe2mwjz3I/S220/zb.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-114908971232697987</id><published>2006-05-31T17:24:00.000+02:00</published><updated>2006-05-31T17:35:12.336+02:00</updated><title type='text'>Installing MS TrueType core fonts on Linux</title><content type='html'>Instructions obtained from:&lt;br /&gt;&lt;a href="http://corefonts.sourceforge.net/"&gt;http://corefonts.sourceforge.net/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt; &lt;li&gt; Install &lt;span style="font-weight: bold;"&gt;cabextract&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;fedora-rpmdevtools&lt;/span&gt;:&lt;br /&gt; &lt;pre&gt;$ sudo yum install cabextract fedora-rpmdevtools&lt;/pre&gt; &lt;/li&gt;&lt;br /&gt; &lt;li&gt; Create the build tree:&lt;br /&gt; &lt;pre&gt; $ fedora-buildrpmtree &lt;/pre&gt; &lt;/li&gt;&lt;br /&gt; &lt;li&gt; Get the SPEC file:&lt;br /&gt; &lt;pre&gt; $ cd ~/rpmbuild/SPEC &amp;&amp; wget http://corefonts.sourceforge.net/msttcorefonts-2.0-1.spec &lt;/pre&gt; &lt;/li&gt;&lt;br /&gt; &lt;li&gt; Get the fonts and create the RPM package:&lt;br /&gt; &lt;pre&gt; $ rpmbuild -bb msttcorefonts-2.0-1.spec &lt;/pre&gt; &lt;/li&gt;&lt;br /&gt; &lt;li&gt; Install the fonts package:&lt;br /&gt; &lt;pre&gt; $ sudo rpm -ivh ../RPMS/noarch/msttcorefonts-2.0-1.noarch.rpm &lt;/pre&gt; &lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;Restart any running application to use the new fonts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-114908971232697987?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/114908971232697987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=114908971232697987&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/114908971232697987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/114908971232697987'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2006/05/installing-ms-truetype-core-fonts-on.html' title='Installing MS TrueType core fonts on Linux'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-114773303342611065</id><published>2006-05-16T00:41:00.000+02:00</published><updated>2006-05-16T15:48:21.533+02:00</updated><title type='text'>Making slides in LaTeX using the Beamer package</title><content type='html'>Prosper is excellent - no doubt about that. But this package also has some promising features and a very, very slick look and feel. Take a looksie at the samples and tutorial &lt;a href="http://heather.cs.ucdavis.edu/%7Ematloff/beamer.html"&gt;here&lt;/a&gt;. It also works with pdflatex.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-114773303342611065?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/114773303342611065/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=114773303342611065&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/114773303342611065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/114773303342611065'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2006/05/making-slides-in-latex-using-beamer.html' title='Making slides in LaTeX using the Beamer package'/><author><name>Zubin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_pa_0Kzu2DKo/S-LHG5WyUiI/AAAAAAAALOY/QPEe2mwjz3I/S220/zb.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-114763620606355617</id><published>2006-05-14T21:36:00.000+02:00</published><updated>2006-05-31T18:20:55.483+02:00</updated><title type='text'>Using LaTeX expressions in Xfig</title><content type='html'>This is a really cool method to get those awesome LaTeX expressions working with Xfig figures.&lt;br /&gt;&lt;br /&gt;Before you enter a mathematical expression, make sure to turn "Special Flags" to "special" under "Text Flags".&lt;br /&gt;&lt;br /&gt;Complete your figure with the drawings and don't forget to enter your expressions in math mode (i.e. $...$).&lt;br /&gt;&lt;br /&gt;Save the figure as a *.fig file.&lt;br /&gt;&lt;br /&gt;Now, export the figure using the "combined PS/LaTeX (both parts)" language.&lt;br /&gt;&lt;br /&gt;Next, make a file name_of_fig.tex and put this in it:&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;\documentclass{article}&lt;br /&gt;\usepackage{epsfig}&lt;br /&gt;\usepackage{color}&lt;br /&gt;\setlength{\textwidth}{100cm}&lt;br /&gt;\setlength{\textheight}{100cm}&lt;br /&gt;\begin{document}&lt;br /&gt;\pagestyle{empty}&lt;br /&gt;\input{name_of_file.pstex_t}&lt;br /&gt;\end{document}&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;Run LaTeX.&lt;br /&gt;&lt;br /&gt;You will have a name_of_fig.dvi file.&lt;br /&gt;&lt;br /&gt;Run the following to convert to *.eps:&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;[silverstreak@localhost]$ dvips -E name_of_file.dvi -o name_of_file.eps&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;You can now include this in your LaTeX document using the usual method.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-114763620606355617?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/114763620606355617/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=114763620606355617&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/114763620606355617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/114763620606355617'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2006/05/using-latex-expressions-in-xfig.html' title='Using LaTeX expressions in Xfig'/><author><name>Zubin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_pa_0Kzu2DKo/S-LHG5WyUiI/AAAAAAAALOY/QPEe2mwjz3I/S220/zb.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-114552157075778787</id><published>2006-04-20T10:03:00.000+02:00</published><updated>2006-04-20T10:26:10.766+02:00</updated><title type='text'>Installing RPMs as a regular user</title><content type='html'>A while back I needed some packages on a machine that I don't have admin rights to. Grabbing the source and recompiling would have been a pain the a** so I decided to read the &lt;span style="font-weight:bold;"&gt;rpm&lt;/span&gt; man pages and look for a way to install packages in the user home directory. Since it's such a nice package manager, it comes with options that allows me to do just that. The command needed is:&lt;br /&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;$ rpm -ivh --relocate OLDPATH1=NEWPATH1 [--relocate OLDPATH2=NEWPATH2 ...] --badreloc package.rpm&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;where OLDPATH is the path in the package; and NEWPATH is something like /home/user/userroot/usr, etc.&lt;br /&gt;&lt;br /&gt;It's best to run&lt;br /&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;$ rpm -qpl package.rpm&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;to see exactly which paths are going to be used by the package. For example, if the package &lt;span style="font-style:italic;"&gt;foo.rpm&lt;/span&gt; produces:&lt;br /&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;$ rpm -qpl foo.rpm&lt;br /&gt;/usr/bin/foo&lt;br /&gt;/usr/lib/foo.so.0.0&lt;br /&gt;/usr/lib/foo.so.0&lt;br /&gt;/usr/share/doc/foo/README&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;then the steps needed are:&lt;br /&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;$ mkdir -p ~/myroot/usr/bin ~/myroot/usr/lib ~/myroot/usr/share/doc&lt;br /&gt;$ rpm -ivh --relocate /usr=/home/$USER/myroot/usr --badreloc foo.rpm&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;That'll install the package under the hierarchy ~/myroot. There will some errors from &lt;span style="font-weight:bold;"&gt;rpmdb&lt;/span&gt; but this is fine since the rpmdb is in a filesystem that we do not have write access to. The only repercussion is that &lt;span style="font-weight:bold;"&gt;rpm&lt;/span&gt; will have no record of the package foo being installed (so packages will have to be removed by hand); but that's okay since we cannot possibly mess up the system while installing stuff under our own home dirs.&lt;br /&gt;&lt;br /&gt;The only steps remaining are to add the new paths to the binary and library search paths. To so this, add the following lines to ~/.bash_profile&lt;br /&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;        PATH=$PATH:$HOME/myroot/usr/bin&lt;br /&gt;        LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/myroot/usr/lib&lt;br /&gt;&lt;br /&gt;        export PATH LD_LIBRARY_PATH&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;This is only efficient as long as the package does not have too many unmet dependencies -- since you will need to grab and install all missing dependencies along with the package itself. And even if you had installed some of the dependencies earlier using this method, rpm will not know about it since there will be no entry in the system rpmdb.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-114552157075778787?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/114552157075778787/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=114552157075778787&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/114552157075778787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/114552157075778787'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2006/04/installing-rpms-as-regular-user.html' title='Installing RPMs as a regular user'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-114552017221889652</id><published>2006-04-20T09:57:00.000+02:00</published><updated>2006-04-20T10:02:52.230+02:00</updated><title type='text'>FC kernel rebuild HOWTO</title><content type='html'>Paul Howarth has a very nice article here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.city-fan.org/tips/TweakKernelPackage"&gt;http://www.city-fan.org/tips/TweakKernelPackage&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The main benefit is that you can use &lt;span style="font-weight:bold;"&gt;rpmbuild&lt;/span&gt; to generate kernel RPMs using the same SPEC file as the distribution itself -- resulting in packages that are as easy to handle as those from FC itself.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-114552017221889652?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/114552017221889652/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=114552017221889652&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/114552017221889652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/114552017221889652'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2006/04/fc-kernel-rebuild-howto.html' title='FC kernel rebuild HOWTO'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-114511151278613380</id><published>2006-04-15T16:26:00.000+02:00</published><updated>2006-04-15T16:36:07.536+02:00</updated><title type='text'>Write algorithms with LaTeX</title><content type='html'>&lt;a href="http://al.jalix.org/LaTeX.php"&gt;Clicky&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Click on the link in "Algorithms with LaTeX" and download the package. The manual is extremely useful and the pseudocode looks wonderful!&lt;br /&gt;&lt;br /&gt;By the way, I would suggest to anyone reading this to turn on Google's personalized search. I knew that I needed this package but I'd lost it after I moved to FC5. Every search I performed for ALgo in Google turned up something else. I had obviously used a different search phrase when I first found this package. Out of desperation, I searched my search history for ALgo and viola - it turned up right there! I had last searched for this package and successfully found it on Jan. 23, 2006. I think Google is a lifesaver and a timesaver! Thanks Larry and Sergey!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-114511151278613380?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/114511151278613380/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=114511151278613380&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/114511151278613380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/114511151278613380'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2006/04/write-algorithms-with-latex.html' title='Write algorithms with LaTeX'/><author><name>Zubin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_pa_0Kzu2DKo/S-LHG5WyUiI/AAAAAAAALOY/QPEe2mwjz3I/S220/zb.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-114330016078580340</id><published>2006-03-25T16:21:00.000+01:00</published><updated>2006-03-25T16:31:31.403+01:00</updated><title type='text'>Mounting fat32 partition/hard disk</title><content type='html'>I found this easy method somewhere online:&lt;br /&gt;&lt;br /&gt;First find out what the partition is labelled as by performing fdisk -l&lt;br /&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;[root@localhost /]# fdisk -l&lt;br /&gt;&lt;br /&gt;Disk /dev/sda: 120.0 GB, 120034123776 bytes&lt;br /&gt;255 heads, 63 sectors/track, 14593 cylinders&lt;br /&gt;Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;&lt;br /&gt;   Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;/dev/sda1   *           1        2611    20972826    7  HPFS/NTFS&lt;br /&gt;/dev/sda2            2612        3886    10241437+  83  Linux&lt;br /&gt;/dev/sda3            3887        5161    10241437+  83  Linux&lt;br /&gt;/dev/sda4            5162       14593    75762540    5  Extended&lt;br /&gt;/dev/sda5            5162        8221    24579418+   b  W95 FAT32&lt;br /&gt;/dev/sda6            8222       11281    24579418+   b  W95 FAT32&lt;br /&gt;/dev/sda7           11282       14593    26603608+   b  W95 FAT32&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;So sda5, 6 and 7 are my fat32 partitions. I need to mount those so that I can make use of them. The following method also mounts them at reboot so you only need to do this once.&lt;br /&gt;&lt;br /&gt;Open /etc/fstab in any convenient editor.&lt;br /&gt;&lt;br /&gt;In my case, I had to append the following at the end of the file:&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;/dev/sda5 /mnt/academics vfat users,owner,rw,umask=000 0 0&lt;br /&gt;/dev/sda6 /mnt/media vfat users,owner,rw,umask=000 0 0&lt;br /&gt;/dev/sda7 /mnt/storage vfat users,owner,rw,umask=000 0 0&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;This gives all users read/write access to the three paritions. I decided to name them academics, media and storage. If you want only read access and no write access, change the "rw" to "ro".&lt;br /&gt;&lt;br /&gt;Save the fstab file.&lt;br /&gt;&lt;br /&gt;Next, you would like to create mount points for these partitions. I decided to have them under "/mnt". So:&lt;br /&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;[root@localhost /]# mkdir /mnt/academics&lt;br /&gt;[root@localhost /]# mkdir /mnt/media&lt;br /&gt;[root@localhost /]# mkdir /mnt/storage&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;And finally, automount:&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;[root@localhost /]# mount -a&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;The drives should be accessible now. Furthermore, they stay accessible after reboot. Enjoy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-114330016078580340?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/114330016078580340/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=114330016078580340&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/114330016078580340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/114330016078580340'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2006/03/mounting-fat32-partitionhard-disk.html' title='Mounting fat32 partition/hard disk'/><author><name>Zubin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_pa_0Kzu2DKo/S-LHG5WyUiI/AAAAAAAALOY/QPEe2mwjz3I/S220/zb.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-114241334491089290</id><published>2006-03-15T09:36:00.000+01:00</published><updated>2006-03-15T10:06:25.626+01:00</updated><title type='text'>SSH automatic reconnect on timeout</title><content type='html'>There may already be some builtin option that allows a client to reconnect when a timeout occurs but I was too lazy to look through the man pages. So I came up with line of bash commands that will do just that:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$ while [ 1 ]; do ssh user@host.domain; sleep 120; done&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;This will keep reconnecting to the host 120 seconds after a connection drops out for whatever reason. This is specially handy to make sure that a remote tunnel stays open. Right now I use it to reach a single host (A,http) on a remote private network from home (B) via another machine in the private network (C) and an intermediate SSH server (D):&lt;br /&gt;&lt;ol&gt;&lt;br /&gt; &lt;li&gt;&lt;PRE&gt;[user@C ~]$ while [ 1 ]; do ssh -R someport:A:80 user@D; sleep 120; done&lt;/PRE&gt;&lt;/li&gt;&lt;br /&gt; &lt;li&gt;&lt;PRE&gt;[user@B ~]$ ssh -L 80:localhost:someport user@D&lt;/PRE&gt;&lt;/li&gt;&lt;br /&gt; &lt;li&gt;&lt;PRE&gt;[root@B ~]# echo "127.0.0.1    A" &gt;&gt; /etc/hosts&lt;/PRE&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;Now it is possible to type "http://A" and visit the site from B as easily as from within the remote private network.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-114241334491089290?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/114241334491089290/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=114241334491089290&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/114241334491089290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/114241334491089290'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2006/03/ssh-automatic-reconnect-on-timeout.html' title='SSH automatic reconnect on timeout'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-114078499874993181</id><published>2006-02-24T13:33:00.000+01:00</published><updated>2006-02-24T13:44:01.890+01:00</updated><title type='text'>Prosper &amp; PDF Output</title><content type='html'>&lt;span style="font-weight: bold;"&gt;&lt;a href="http://prosper.sf.net"&gt;Prosper&lt;/a&gt;&lt;/span&gt; cannot be used with &lt;span style="font-weight: bold;"&gt;PDFTeX&lt;/span&gt; and hence PDF files must be obtained via the &lt;span style="font-weight: bold;"&gt;DVI -&gt; PS -&gt; PDF&lt;/span&gt; route. The default &lt;span style="font-weight: bold;"&gt;ps2pdf&lt;/span&gt; conversion, however, generates a PDF with pages that are a bit too narrow. This is easily remedied by specifying the size of the output desired to the &lt;span style="font-weight: bold;"&gt;ps2pdf&lt;/span&gt; program:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$ ps2pdf -dDEVICEWIDTHPOINTS=x -dDEVICEHEIGHTPOINTS=y somefile.ps&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Where 'x' is the width in and 'y' is the height in 1/72" units. So, for an approximately A4 size output, 'x'=595 &amp;amp; 'y'=842.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-114078499874993181?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/114078499874993181/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=114078499874993181&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/114078499874993181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/114078499874993181'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2006/02/prosper-pdf-output.html' title='Prosper &amp; PDF Output'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-114010896854642672</id><published>2006-02-16T17:46:00.000+01:00</published><updated>2006-02-16T17:56:08.556+01:00</updated><title type='text'>Important locations in Linux</title><content type='html'>For a beginner migrating from Windoz, this is pretty confusing. So, I'm just going to put some information here that comes from a December 2, 2005 mail to the Fedora list.&lt;br /&gt;&lt;br /&gt;Basic executables: /bin&lt;br /&gt;&lt;br /&gt;Userland executables: /usr/bin&lt;br /&gt;&lt;br /&gt;System executables: /sbin and /usr/sbin&lt;br /&gt;&lt;br /&gt;Personal programs: ~/bin&lt;br /&gt;&lt;br /&gt;Some programs end up in /usr/local/bin or /opt/bin.&lt;br /&gt;&lt;br /&gt;Few are hidden in /lib and /usr/lib and some other places.&lt;br /&gt;&lt;br /&gt;To find where a command resides, do:&lt;br /&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;type commandname&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;A list of the commands built into the shell can be gotten by typing "help" to the command prompt.&lt;br /&gt;&lt;br /&gt;Non-builtin commands documentation is available by typing "man commandname".&lt;br /&gt;&lt;br /&gt;The Linux Documentation Project (TDLP in short) provides a lot of information - especially for users migrating from Windoz to Linux.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-114010896854642672?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/114010896854642672/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=114010896854642672&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/114010896854642672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/114010896854642672'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2006/02/important-locations-in-linux.html' title='Important locations in Linux'/><author><name>Zubin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_pa_0Kzu2DKo/S-LHG5WyUiI/AAAAAAAALOY/QPEe2mwjz3I/S220/zb.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-113991889448510168</id><published>2006-02-14T13:07:00.000+01:00</published><updated>2006-02-14T13:08:14.496+01:00</updated><title type='text'>BASH Commands</title><content type='html'>Here's a nice list:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ss64.com/bash/index.html"&gt;http://www.ss64.com/bash/index.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-113991889448510168?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/113991889448510168/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=113991889448510168&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113991889448510168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113991889448510168'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2006/02/bash-commands.html' title='BASH Commands'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-113951367702353186</id><published>2006-02-09T20:31:00.000+01:00</published><updated>2006-02-09T20:34:37.046+01:00</updated><title type='text'>Removing old kernels using yum</title><content type='html'>I found this neat and tidy method of removing old kernels. Before, I used to do this:&lt;br /&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;[root@localhost ~]# rpm -e kernel_name&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;But I have just come across a way of doing the same using yum. That way, you save time because you don't have to remove each one manually. It also prevents you from making mistakes and leaves the latest two kernels intact. First, you need to get "yum-utils".&lt;br /&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;[root@localhost ~]# yum install yum-utils&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;Then, simply remove all your old kernels!&lt;br /&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;[root@localhost ~]# package-cleanup --oldkernels&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;And you're done already! To check which kernels your system still retains, do:&lt;br /&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;[root@localhost ~]# rpm -qa | grep kernel&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;Nice, no?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-113951367702353186?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/113951367702353186/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=113951367702353186&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113951367702353186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113951367702353186'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2006/02/removing-old-kernels-using-yum.html' title='Removing old kernels using yum'/><author><name>Zubin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_pa_0Kzu2DKo/S-LHG5WyUiI/AAAAAAAALOY/QPEe2mwjz3I/S220/zb.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-113896297278867352</id><published>2006-02-03T11:05:00.000+01:00</published><updated>2006-02-03T12:36:22.496+01:00</updated><title type='text'>Tesselated Cells</title><content type='html'>Finally .. a &lt;a href="http://pandora.iu-bremen.de/~mafgani/stuff/tess_cells.m"&gt;script&lt;/a&gt; that will generate a square field of tesselated cells in MATLAB. The script take as input the desired cell radius and the dimension of the square field.&lt;br /&gt;&lt;br /&gt;Generating a cell is simple enough. The corners are simply &lt;span style="font-weight:bold;"&gt;R*exp(j*(-pi:pi/3:pi)+pi/6)/cos(pi/6)&lt;/span&gt;. The additional &lt;span style="font-weight:bold;"&gt;pi/6&lt;/span&gt; is needed to rotate the resulting hexagon. The real challenge is in the tesselation. In order to achieve that, two base vectors that govern the tesselation must be defined:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;vi = 2*R;&lt;br /&gt;vj = 2*R*(cos(pi/3) + j*sin(pi/3))&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Using these base vectors, the centers of every cell in the tesselation can be defined:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;for a = 1:x&lt;br /&gt;    for b = 1:x&lt;br /&gt;        centr(a,b) = a*vi+b*vj;&lt;br /&gt;    end&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;One we have the centers, use the MATLAB &lt;span style="font-weight:bold;"&gt;repmat&lt;/span&gt; function to replicate the corners around each of the centers to get the tesselated cells:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;cells = repmat(corners.', 1,...&lt;br /&gt;               numel(centr))+repmat(reshape(centr.',1,...&lt;br /&gt;               numel(centr)),length(corners), 1);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;A plot of the cells can be achieved using:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;plot(real(cells),imag(cells));&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This will however, generate a tesselation that is skewed. The linked *.m file takes care of that issue to generate a square tesselated field.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-113896297278867352?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/113896297278867352/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=113896297278867352&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113896297278867352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113896297278867352'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2006/02/tesselated-cells.html' title='Tesselated Cells'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-113861997883023058</id><published>2006-01-30T12:18:00.000+01:00</published><updated>2006-08-20T23:59:03.383+02:00</updated><title type='text'>Generate BibTeX  Entry from IEEEXplore Citations</title><content type='html'>Very useful:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.unik.no/%7Efauske/bibconverter/index.php"&gt;BibConverter v 1.5.3&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;[edited Aug 20, 2006]:&lt;/span&gt;&lt;br /&gt;The link now redirects to:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.bibconverter.net/"&gt;BibConverter v. 3.0beta&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-113861997883023058?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/113861997883023058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=113861997883023058&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113861997883023058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113861997883023058'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2006/01/generate-bibtex-entry-from-ieeexplore.html' title='Generate BibTeX  Entry from IEEEXplore Citations'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-113820489515288270</id><published>2006-01-25T16:51:00.000+01:00</published><updated>2006-01-25T17:01:35.166+01:00</updated><title type='text'>HTTP Access Control</title><content type='html'>Finally figured out how to password protect individual directories on the server:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://httpd.apache.org/docs/2.2/howto/auth.html"&gt;Authentication, Authorization and Access Control&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It's a simple 2-step process:&lt;br /&gt;&lt;br /&gt;1. Create a passwords file for the users using "&lt;span style="font-weight:bold;"&gt;htpasswd&lt;/span&gt;":&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;jsmith@server:~/public_html/db$ htpasswd -c ~/htpasswds jdoe&lt;br /&gt;New password:&lt;br /&gt;Re-type new password:&lt;br /&gt;Adding password for user jdoe&lt;br /&gt;jsmith@server:~/public_html/db$&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;2. Create a file "&lt;span style="font-weight:bold;"&gt;.htaccess&lt;/span&gt;" in the directory to be protected:&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;jsmith@server:~/public_html/db$ cat .htaccess&lt;br /&gt;AuthType Basic&lt;br /&gt;AuthName "db"&lt;br /&gt;AuthUserFile /home/jsmith/htpasswds&lt;br /&gt;Require user jdoe&lt;br /&gt;&lt;/PRE&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-113820489515288270?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/113820489515288270/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=113820489515288270&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113820489515288270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113820489515288270'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2006/01/http-access-control.html' title='HTTP Access Control'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-113819126585742767</id><published>2006-01-25T13:10:00.000+01:00</published><updated>2006-01-25T13:14:25.866+01:00</updated><title type='text'>Proxy tools</title><content type='html'>There's a very nice list of servers here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://proxyz.net/index.php"&gt;Proxyz.net&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This Firefox extension is handy for changing Proxies quickly: &lt;a href="http://www.roundtwo.com/product/switchproxy"&gt;SwitchProxy&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-113819126585742767?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/113819126585742767/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=113819126585742767&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113819126585742767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113819126585742767'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2006/01/proxy-tools.html' title='Proxy tools'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-113769253416555946</id><published>2006-01-19T18:19:00.000+01:00</published><updated>2006-01-19T18:47:45.296+01:00</updated><title type='text'>coLinux</title><content type='html'>Recently, I needed to use &lt;a href="http://uml.sf.net"&gt;Umbrello&lt;/a&gt; but didn't have access to a workstation that had it installed. And since I'm stuck with a Windows PC, I thought I'd take a look at the &lt;a href="http://kde-cygwin.sf.net"&gt;KDE-Cygwin&lt;/a&gt; project. It seems that they've stopped working on the project since there is a better alternative: &lt;span style="font-weight:bold;"&gt;&lt;a href="http://www.colinux.org"&gt;Cooperative Linux&lt;/a&gt;&lt;/span&gt;. It's basically a modified Linux 2.6.10 kernel that runs on Windows -- kind of a like a virtual machine but it's different -- it's definitely a lot faster. Here's a snippet from the coLinux homepage:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Cooperative Linux is the first working free and open source method for optimally running Linux on Microsoft Windows natively. More generally, Cooperative Linux (short-named coLinux) is a port of the Linux kernel that allows it to run cooperatively alongside another operating system on a single machine. For instance, it allows one to freely run Linux on Windows 2000/XP, without using a commercial PC virtualization software such as VMware, in a way which is much more optimal than using any general purpose PC virtualization software.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;The project page had a preconfigured Debian image and so that's what I'm using at the moment. The native X server does not work though -- so the Cygwin based X server is needed to diplay all the GUI stuff.&lt;br /&gt;&lt;br /&gt;Getting it installed was a piece of cake. The Wiki site for coLinux has a lot of helpful info.&lt;br /&gt;&lt;br /&gt;Once the basic text-mode linux is up and running (must be able to reach the host via the network), we need to run some commands from the cygwin shell. First  run&lt;br /&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;$ cygserver-config&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;to configure the cygwin server and then start the server with:&lt;br /&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;$ cygrunserver -S cygserver&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;Then, we need to set&lt;br /&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;$ export CYGWIN=server&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;And then start the X server in rootless mode. The easiest way is to just make a copy of the &lt;span style="font-weight:bold;"&gt;startxwin.bat&lt;/span&gt; file and then edit it to change the options to XWin.&lt;br /&gt;&lt;br /&gt;Once the X server is running, we need to run "&lt;span style="font-weight:bold;"&gt;xhost +&lt;/span&gt;" from the &lt;span style="font-weight:bold;"&gt;xterm&lt;/span&gt; that had popped up. Then, we switch over to the coLinux console and run:&lt;br /&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;$ export DISPLAY=&amp;lt;ip of windows host&amp;gt;:0&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;And that's it! Now you have a fully functional linux distro! I would have gone for a Fedora install but couldn't find a proper image.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-113769253416555946?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/113769253416555946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=113769253416555946&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113769253416555946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113769253416555946'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2006/01/colinux.html' title='coLinux'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-113749759616230709</id><published>2006-01-17T12:20:00.000+01:00</published><updated>2006-01-17T12:37:14.200+01:00</updated><title type='text'>PSfrag for EPS Graphichs Text Manipulation</title><content type='html'>There's a nice package called &lt;span style="font-weight:bold;"&gt;psfrag&lt;/span&gt; that allows you to insert LaTeX constructs into EPS figures. This is specially useful with EPS files saved from MATLAB plots. The way it works is by replacing a given tag in the text of the EPS file with the LaTeX construct.&lt;br /&gt;&lt;br /&gt;E.g. label the x-axis of of the plot as XLABEL and save the plot as an EPS file. Then, when you include that file, just put in the \psfrag{}{} tag:&lt;br /&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;\psfrag{XLABEL}{$\frac{\tau}{\sigma}$}&lt;br /&gt;\includegraphics{file}&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;The most obvious disadvantage is that it only works with EPS figures -- so no PdfLaTeX. So, to compile a document to PDF, you'll need to go the old latex -&gt; dvi2ps -&gt; ps2pdf way.&lt;br /&gt;&lt;br /&gt;More details can be found on &lt;a href="http://www.ctan.org/tex-archive/help/Catalogue/entries/psfrag.html"&gt;CTAN&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-113749759616230709?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/113749759616230709/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=113749759616230709&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113749759616230709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113749759616230709'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2006/01/psfrag-for-eps-graphichs-text.html' title='PSfrag for EPS Graphichs Text Manipulation'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-113735454639859699</id><published>2006-01-15T20:22:00.000+01:00</published><updated>2006-01-15T20:54:32.026+01:00</updated><title type='text'>Return of DARKWORLD</title><content type='html'>Yup! My favorite PC just regained Net connectivity today. I moved into the new apartment this morning and was up and running by the evening. The guy who I share the place with wasn't around and so I would have had to wait till I got the info about the wireless network. So, instead of waiting, I just decided to see what kind of a WLAN he has ... and oh my oh my ... there were 5 freakin' access points around -- and 3 of them completely unsecured! As it turned out, one belonged to the dude I share the place with ...&lt;br /&gt;&lt;br /&gt;Anyway, then I decided to catch up on my TV eps (&lt;a href="http://www.tv.com/stargate-sg-1/show/185/summary.html"&gt;Stargate SG1&lt;/a&gt;/&lt;a href="http://www.tv.com/stargate-atlantis/show/11415/summary.html"&gt;Atlantis&lt;/a&gt;, &lt;a href="http://www.tv.com/threshold/show/32983/summary.html"&gt;Threshold&lt;/a&gt;, &lt;a href="http://www.tv.com/supernatural/show/30144/summary.html"&gt;Supernatural&lt;/a&gt;, &lt;a href="http://www.bbc.co.uk/doctorwho/episodes/"&gt;Doctor Who&lt;/a&gt;) and f*** the speed sux! It's a bloody T-Online DSL1000 Flat deal. Anyway, the IP I got was "192.168.0.5", so I deduced that the router should be at "192.168.0.1" or "192.168.0.254". And sure enough there it was in the first address. Obviously, it asked me for a password that I didn't know. So, I just tried "admin:1234" .. and nope, no go .. Then I thought I'd just do a little net search. The router was NETGEAR (deduced from the WLAN SSID), so I just googled "&lt;a href="http://www.google.com/search?hl=en&amp;q=netgear+default+password&amp;btnG=Google+Search"&gt;netgear default password&lt;/a&gt;" and the 4th hit came up with "admin:password". Turns out the guy didn't even change that password :D So, I got in, fiddled around with the NAT settings and Azureus was NAT free in no time. This has got to be the prime example of an unsecured network ...&lt;br /&gt;&lt;br /&gt;Anyway, once the guy got back, I explained everything to him and changed the router password and setup a WEP-key. It seems there was a machine leeching off of this net and things improved a little once that dude got kicked out. It turns out DSL6000 costs just as much as he pays right now -- but he has no use for so much bandwidth when I'm gone -- so we'll just change to DSL2000 with 384k upload for now. That should be enough for me to download the occasional SG1 / Doctor Who episode :D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-113735454639859699?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/113735454639859699/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=113735454639859699&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113735454639859699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113735454639859699'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2006/01/return-of-darkworld.html' title='Return of DARKWORLD'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-113690496806138414</id><published>2006-01-10T15:51:00.000+01:00</published><updated>2006-01-10T15:56:08.076+01:00</updated><title type='text'>Monkeys!</title><content type='html'>I know that this is all over the web but it just never gets old. Just putting it here so that I know where to find some instant laughter:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://pandora.iu-bremen.de/~mafgani/stuff/monkeys.txt"&gt;I LIKE MONKEYS&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-113690496806138414?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/113690496806138414/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=113690496806138414&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113690496806138414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113690496806138414'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2006/01/monkeys.html' title='Monkeys!'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-113690089271587318</id><published>2006-01-10T14:37:00.000+01:00</published><updated>2006-01-10T14:51:23.466+01:00</updated><title type='text'>Proxy Bypass</title><content type='html'>I guess it's usual for every institution to have a central firewall/proxy that all internal traffic must go through to reach the outside world. I am by no means paranoid about security/privacy but it got me thinking.&lt;br /&gt;&lt;br /&gt;... And once again, SSH to the rescue! It almost feels like the possibilites of a SSH tunnel with Local port forwarding are limitless :D&lt;br /&gt;&lt;br /&gt;I just picked up a public German proxy from this page:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.publicproxyservers.com/index.html"&gt;http://www.publicproxyservers.com/index.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And then setup a SSH connection to forward local port 8080 to proxy:port. Then for the browser I just set localhost:8080 as the proxy.&lt;br /&gt;&lt;br /&gt;Well, the speed is a little short of astounding but it's very much usable :D Now all that the central firewall/proxy should be seeing is a bunch of encrypted traffic.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-113690089271587318?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/113690089271587318/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=113690089271587318&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113690089271587318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113690089271587318'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2006/01/proxy-bypass.html' title='Proxy Bypass'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-113680883570900840</id><published>2006-01-09T13:10:00.000+01:00</published><updated>2006-01-09T13:13:55.723+01:00</updated><title type='text'>Embedded IE for Firefox</title><content type='html'>While customizing firefox, I came across this extension: &lt;a href="http://ietab.mozdev.org"&gt;ietab&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It doesn't really kill that IE dependence but it's not a bad extension to have around.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-113680883570900840?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/113680883570900840/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=113680883570900840&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113680883570900840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113680883570900840'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2006/01/embedded-ie-for-firefox.html' title='Embedded IE for Firefox'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-113680175573271908</id><published>2006-01-09T11:07:00.000+01:00</published><updated>2006-01-09T11:15:55.913+01:00</updated><title type='text'>First day at DoCoMo</title><content type='html'>Thus starts my first day at work. I've already got 2 papers to read and a meeting scheduled for later today. Got a brand new computer (HP Compaq DC5100) running only Win XP :(. For the kind of work I'll be doing (software development), I would have liked a *nix based machine. Apparently the simulation workstations are *nix so I'll have to make do with Xwin32 for the next 6 months.&lt;br /&gt;&lt;br /&gt;Well .. at least I still have my own PC which should become net active again sometime after next weekend.&lt;br /&gt;&lt;br /&gt;Alright then, back to my reading. Good luck to me! :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-113680175573271908?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/113680175573271908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=113680175573271908&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113680175573271908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113680175573271908'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2006/01/first-day-at-docomo.html' title='First day at DoCoMo'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-113607038625933525</id><published>2006-01-01T00:05:00.000+01:00</published><updated>2006-01-01T00:06:26.270+01:00</updated><title type='text'>2006</title><content type='html'>A great big &lt;span style="font-size:200%;"&gt;Happy New Year&lt;/span&gt; to everyone out there!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-113607038625933525?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/113607038625933525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=113607038625933525&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113607038625933525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113607038625933525'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2006/01/2006.html' title='2006'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-113594606303971099</id><published>2005-12-30T13:31:00.000+01:00</published><updated>2005-12-30T20:22:57.176+01:00</updated><title type='text'>Bash scripting guides</title><content type='html'>Here's a modest list:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.tldp.org/LDP/Bash-Beginners-Guide/html/"&gt;http://www.tldp.org/LDP/Bash-Beginners-Guide/html/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.opengroup.org/onlinepubs/009695399/toc.htm"&gt;http://www.opengroup.org/onlinepubs/009695399/toc.htm&lt;/a&gt;&lt;br /&gt;&lt;a href="http://cfaj.freeshell.org/shell/"&gt;http://cfaj.freeshell.org/shell/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.shelldorado.com/"&gt;http://www.shelldorado.com/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://home.comcast.net/~j.p.h/cus-faq.html"&gt;http://home.comcast.net/~j.p.h/cus-faq.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://sed.sourceforge.net/sed1line.txt"&gt;http://sed.sourceforge.net/sed1line.txt&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.student.northpark.edu/pemente/sed/sedfaq.html"&gt;http://www.student.northpark.edu/pemente/sed/sedfaq.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.faqs.org/faqs/unix-faq/faq/part1/"&gt;http://www.faqs.org/faqs/unix-faq/faq/part1/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.shelldorado.com/goodcoding/cmdargs.html"&gt;http://www.shelldorado.com/goodcoding/cmdargs.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.macobserver.com/tips/macosxcl101/"&gt;http://www.macobserver.com/tips/macosxcl101/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.wagoneers.com/UNIX/FIND/find-usage.html"&gt;http://www.wagoneers.com/UNIX/FIND/find-usage.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://cnswww.cns.cwru.edu/~chet/bash/bashref.html"&gt;http://cnswww.cns.cwru.edu/~chet/bash/bashref.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.tldp.org/LDP/abs/html/"&gt;http://www.tldp.org/LDP/abs/html/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Got the links from a post by &lt;span style="font-weight:bold;"&gt;Charles Howse&lt;/span&gt; on the 30th of December 2005 to the thread &lt;span style="font-style:italic;"&gt;Why questions don't get answered, or "No, I've already RTFM, tell me the answer!"&lt;/span&gt; on &lt;a href="https://www.redhat.com/archives/fedora-list/"&gt;fedora-list&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-113594606303971099?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/113594606303971099/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=113594606303971099&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113594606303971099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113594606303971099'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2005/12/bash-scripting-guides.html' title='Bash scripting guides'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-113568719471251801</id><published>2005-12-27T12:34:00.000+01:00</published><updated>2005-12-27T14:23:00.856+01:00</updated><title type='text'>Command line search utility</title><content type='html'>While studying for one of the finals this year, I felt the need for a CLI search utility that would search on Google, Wikipedia, Google Images, etc. I didn't know of any tools that would already do this so I decided to write my own little bash script:&lt;br /&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;#Needs the htmlview package&lt;br /&gt;&lt;br /&gt;opt="$1"&lt;br /&gt;str="$2"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#Create the search string&lt;br /&gt;until [ -z "$3" ]&lt;br /&gt;do&lt;br /&gt;  str="$str+$3"&lt;br /&gt;  shift&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;case "$opt" in&lt;br /&gt;    "google"  )&lt;br /&gt;    htmlview http://www.google.com/search?hl=en\&amp;q="$str"&amp;btnG=Google+Search &amp;&lt;br /&gt;    ;;&lt;br /&gt;&lt;br /&gt;    "image"   )&lt;br /&gt;    htmlview http://images.google.com/images?q="$str"\&amp;safe=off &amp;&lt;br /&gt;    ;;&lt;br /&gt;&lt;br /&gt;    "wpedia"  )&lt;br /&gt;    htmlview http://en.wikipedia.org/wiki/Special:Search?search="$str" &amp;&lt;br /&gt;    ;;&lt;br /&gt;&lt;br /&gt;    "scholar" )&lt;br /&gt;    htmlview http://scholar.google.com/scholar?q="$str"\&amp;ie=UTF-8\&amp;oe=UTF-8\&amp;hl=en\&amp;btnG=Search &amp;&lt;br /&gt;    ;;&lt;br /&gt;&lt;br /&gt;    "ieee"    )&lt;br /&gt;    htmlview http://ieeexplore.ieee.org/search/searchresult.jsp?queryText=\%28\%28"$str"\%29\%3Cin\%3Emetadata\%29 &amp;&lt;br /&gt;    ;;&lt;br /&gt;&lt;br /&gt;    *         )&lt;br /&gt;    echo "Usage: search engine searchterm [searchterms]"&lt;br /&gt;    echo&lt;br /&gt;    echo "Engines: google    Basic Google websearch"&lt;br /&gt;    echo "         image     Unfiltered Google image search"&lt;br /&gt;    echo "         wpedia    Wikipedia (English)"&lt;br /&gt;    echo "         scholar   Google Scholar"&lt;br /&gt;    echo "         ieee      IEEE Xplore (needs subscription)"&lt;br /&gt;    echo&lt;br /&gt;    echo "Example: search image batman"&lt;br /&gt;    ;;&lt;br /&gt;esac&lt;br /&gt;&lt;br /&gt;echo&lt;br /&gt;&lt;br /&gt;exit 0&lt;br /&gt;&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;It makes use of the &lt;span style="font-weight:bold;"&gt;htmlview&lt;/span&gt; package to discover the default browser and display the results. The use of the script is quite straightforward:&lt;br /&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;[darkknight@darkworld bin]$ search image batman begins&lt;br /&gt;&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;As is, it considers all search terms. Fancy things like Boolean expressions are not supported (yet :)). A copy of the script can be found &lt;a href="http://pandora.iu-bremen.de/~mafgani/stuff/search"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-113568719471251801?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/113568719471251801/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=113568719471251801&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113568719471251801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113568719471251801'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2005/12/command-line-search-utility.html' title='Command line search utility'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-113568320790070380</id><published>2005-12-27T12:22:00.000+01:00</published><updated>2005-12-28T03:13:59.110+01:00</updated><title type='text'>Time synchronization using NTP</title><content type='html'>I've been having some trouble getting the system clock to sync. with time servers using &lt;span style="font-weight:bold;"&gt;ntpd&lt;/span&gt;. The method that works at the moment is the use of the CLI utility &lt;span style="font-weight:bold;"&gt;ntpdate&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;[darkknight@darkworld ~]$ sudo su -&lt;br /&gt;[root@darkworld ~]# ntpdate time.nist.gov&lt;br /&gt;27 Dec 12:25:17 ntpdate[5743]: adjust time server 192.43.244.18 offset 0.002806 sec&lt;br /&gt;[root@darkworld ~]#&lt;br /&gt;&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;Unfortunately, the man page of &lt;span style="font-weight:bold;"&gt;ntpdate&lt;/span&gt; says that it's set to be removed from the distro. -- hopefully &lt;span style="font-weight:bold;"&gt;ntpd&lt;/span&gt; will work again once that happens.&lt;br /&gt;&lt;br /&gt;[Update] It seems the &lt;span style="font-weight:bold;"&gt;ntpd&lt;/span&gt; daemon was missing. The RPM was installed but the daemon was no longer in &lt;span style="font-style:italic;"&gt;/usr/sbin/&lt;/span&gt;. So, I reinstalled the &lt;span style="font-weight:bold;"&gt;ntp&lt;/span&gt; package and now time sync. works as is should.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-113568320790070380?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/113568320790070380/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=113568320790070380&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113568320790070380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113568320790070380'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2005/12/time-synchronization-using-ntp.html' title='Time synchronization using NTP'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-113491891906172184</id><published>2005-12-18T16:10:00.000+01:00</published><updated>2005-12-18T16:17:59.176+01:00</updated><title type='text'>Picture of the Moon</title><content type='html'>For a while now I've been thinking of photographing the moon. It was a clear night and I finally got around to doing exactly that:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3504/251/1600/Moon.0.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/3504/251/400/Moon.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I used my Fujifilm FinePix S5100 (Black&amp;White mode, ISO 200) at a combined maximum zoom of 360x. Then I used Photoshop to increase the contrast a little. I'm quite surprised with the result -- didn't expect this from a consumer grade digicam.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-113491891906172184?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/113491891906172184/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=113491891906172184&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113491891906172184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113491891906172184'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2005/12/picture-of-moon.html' title='Picture of the Moon'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-113189687956034164</id><published>2005-11-13T16:40:00.000+01:00</published><updated>2005-11-13T16:49:03.960+01:00</updated><title type='text'>Adding style files to LaTeX</title><content type='html'>Lest I forget how to do this once more, I'm going to jot it down here for eternity:&lt;br /&gt;&lt;br /&gt;If you want to use a non-standard style file for LaTeX, you have to first put it in the LaTeX tree and then compile it so that it is recognized. &lt;br /&gt;&lt;br /&gt;So, first I downloaded the style files from &lt;a href="http://www.ieee.org/portal/site/mainsite/menuitem.818c0c39e85ef176fb2275875bac26c8/index.jsp?&amp;pName=corp_level1&amp;path=pubs/transactions&amp;file=stylesheets.xml&amp;xsl=generic.xsl"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Next, I unzipped them to my desktop. There were three files:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;bare_conf.tex  &lt;br /&gt;bare_jrnl.tex  &lt;br /&gt;IEEEtran.cls&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;These were then copied (as root) to the directory&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;/usr/share/texmf/tex/latex/misc/ieeetran&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The folder "ieeetran" was created to avoid confusion.&lt;br /&gt;&lt;br /&gt;Finally, I had to run the "mktexlsr" command so that these new files were "compiled" and read as part of the path. This was done as:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;[zubin@localhost ieeetran]$ sudo mktexlsr&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-113189687956034164?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/113189687956034164/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=113189687956034164&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113189687956034164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113189687956034164'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2005/11/adding-style-files-to-latex.html' title='Adding style files to LaTeX'/><author><name>Zubin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_pa_0Kzu2DKo/S-LHG5WyUiI/AAAAAAAALOY/QPEe2mwjz3I/S220/zb.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-113110521047089445</id><published>2005-11-04T12:49:00.000+01:00</published><updated>2005-11-04T22:14:16.146+01:00</updated><title type='text'>Console based MSN client</title><content type='html'>Earlier today  I stumbled across a client for MSN Messenger that runs in a terminal! It's called &lt;span style="font-weight:bold;"&gt;&lt;a href="http://tmsnc.sourceforge.net"&gt;tmsnc&lt;/a&gt;&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;The RPM had some dependencies that I could not solve so I decided to compile from source. Apart from a few minor issues, it looks great! There are some screenshots available &lt;a href="http://tmsnc.sourceforge.net/screenshots.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;You might wonder why you need a text based MSN client; well, one can never have too many tools :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-113110521047089445?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/113110521047089445/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=113110521047089445&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113110521047089445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113110521047089445'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2005/11/console-based-msn-client.html' title='Console based MSN client'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-113077634060038774</id><published>2005-10-31T17:17:00.000+01:00</published><updated>2005-10-31T17:55:13.906+01:00</updated><title type='text'>The wonders of gdmflexiserver</title><content type='html'>If you're using GDM, this is the easiest way to get the "Fast User Switching" seen on Windows XP. All you have to do is type:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;[darkknight@darkknight ~]$ gdmflexiserver&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;and you get a brand new login on Virtual Terminal (VT) #8. Successive runs of &lt;span style="font-weight:bold;"&gt;gdmflexiserver&lt;/span&gt; will open up logins on VT#9, VT#10 and so on. Just in case you don't know how to switch VTs, its done through the &lt;span style="font-weight:bold;"&gt;Ctrl+Alt+F&lt;1-12&gt;&lt;/span&gt; key combinations. The main login is on VT#7. Once you exit/logout from any of the sessions on VT#&lt;8-12&gt;, it will simply close. If you're not automatically returned to the original session, just switch back manually using &lt;span style="font-weight:bold;"&gt;Ctrl+Alt+F7&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;One useful option of &lt;span style="font-weight:bold;"&gt;gdmflexiserver&lt;/span&gt; is the ability to run in a nested X server. The command in that case is:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;[darkknight@darkknight ~]$ gdmflexiserver -n&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Now, instead of opening up a login in a brand-new VT, it will just open up a Xnest window with the login. The new X-Server is then a nested (child) server under the main X server on VT#7.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3504/251/1600/Screenshot.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/3504/251/400/Screenshot.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;By default the Xnest window opened has a geometry of 1024x768 pixels. This can be changed by adding the &lt;span style="font-weight:bold;"&gt;-geometry&lt;/span&gt; option to the &lt;span style="font-weight:bold;"&gt;Xnest&lt;/span&gt; command in &lt;span style="font-style:italic;"&gt;/etc/X11/gdm/gdm.conf&lt;/span&gt; :&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;...&lt;br /&gt;# the X nest command&lt;br /&gt;Xnest=/usr/X11R6/bin/Xnest -audit 0 -name Xnest -geometry 1280x1024+0+0&lt;br /&gt;# Automatic VT allocation.  Right now only works on Linux.  This way&lt;br /&gt;...&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The geometry is specified as &lt;span style="font-weight:bold;"&gt;WidthxHeight+XCoord.+YCoord.&lt;/span&gt; After saving the modified &lt;span style="font-weight:bold;"&gt;gdm.conf&lt;/span&gt;, &lt;span style="font-weight:bold;"&gt;gdm&lt;/span&gt; must be restarted for the changes to take effect. This is done by logging in as root into one of the text VTs (VT#&lt;1-6&gt;) and issuing the commands:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;[root@darkknight ~]# telinit 3; telinit 5; exit&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-113077634060038774?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/113077634060038774/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=113077634060038774&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113077634060038774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113077634060038774'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2005/10/wonders-of-gdmflexiserver.html' title='The wonders of gdmflexiserver'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-113074784739852653</id><published>2005-10-31T09:31:00.000+01:00</published><updated>2005-10-31T20:09:20.290+01:00</updated><title type='text'>New GDM Theme</title><content type='html'>Just designed my very first GDM theme. It's based on the "Pixel Girl" &lt;a href="http://www.gnome-look.org/content/show.php?content=18179"&gt;theme&lt;/a&gt; and uses the "Blue Turbulence" &lt;a href="http://www.gnome-look.org/content/show.php?content=24698"&gt;wallpaper&lt;/a&gt;. Here's a screenshot:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3504/251/1600/shot.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/3504/251/400/shot.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It can be downloaded from &lt;a href="http://www.gnome-look.org/content/show.php?content=30846"&gt;GNOME-Look.org&lt;/a&gt; or &lt;a href="http://pandora.iu-bremen.de/~mafgani/stuff/blueswirl.tar.bz2"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;To install and use, run the &lt;span style="font-weight:bold;"&gt;gdmsetup&lt;/span&gt; tool as root and look under "Graphical greeter"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-113074784739852653?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/113074784739852653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=113074784739852653&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113074784739852653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113074784739852653'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2005/10/new-gdm-theme.html' title='New GDM Theme'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-113061024974563215</id><published>2005-10-29T20:22:00.000+02:00</published><updated>2005-10-29T20:24:09.753+02:00</updated><title type='text'>Addendum to VLC post</title><content type='html'>One thing to note is that after installing an older, more stable version of VLC on your 32 bit system, you will get an error while running "sudo yum update". The problem is that the Livna repository has a newer version of "libdvbpsi" than the one required by the VLC player. So to avoid conficts, do this:&lt;br /&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;sudo yum --exclude=libdvbpsi update&lt;br /&gt;&lt;/PRE&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-113061024974563215?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/113061024974563215/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=113061024974563215&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113061024974563215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113061024974563215'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2005/10/addendum-to-vlc-post.html' title='Addendum to VLC post'/><author><name>Zubin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_pa_0Kzu2DKo/S-LHG5WyUiI/AAAAAAAALOY/QPEe2mwjz3I/S220/zb.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-113045431524901512</id><published>2005-10-28T00:29:00.000+02:00</published><updated>2005-10-28T01:07:38.156+02:00</updated><title type='text'>Using sudo - for the layman</title><content type='html'>Are you tired of becoming the root user just to perform updates? Well, you don't have to. Using sudo, you can perform all those restricted tasks without having to be the super user.&lt;br /&gt;&lt;br /&gt;To do this, one has to edit the sudoers file.&lt;br /&gt;&lt;br /&gt;The configuration of sudo is in /etc/sudoers. sudo is a setuid binary. Since sudo is owned by root, your effective id becomes root. &lt;br /&gt;&lt;br /&gt;To edit the sudoers file, log on as root and change to /etc and:&lt;br /&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;[root@localhost etc]# visudo&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;This prevents multiple users from editing the same file at the same time because that would make things rather messy, don't you think?&lt;br /&gt;&lt;br /&gt;Anyway, if you want to give yourself full permission to perform root tasks, edit the file as follows:&lt;br /&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;...&lt;br /&gt;# User privilege specification&lt;br /&gt;root    ALL=(ALL) ALL&lt;br /&gt;zubin   ALL=(ALL)&lt;br /&gt;...&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;Note that doing this does not give "zubin" root's PATH. If I want to run lpc, I'd have to do:&lt;br /&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;[zubin@localhost ~]$ sudo /usr/sbin/lpc&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;In this case, I'd have to provide my own login password to get sudo to work. sudo remembers the password for 5 minutes by default.&lt;br /&gt;&lt;br /&gt;Now, if we modify the file like this:&lt;br /&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;...&lt;br /&gt;# Defaults specification&lt;br /&gt;Defaults:zubin timestamp_timeout=0, runaspw, passwd_tries=1&lt;br /&gt;...&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;This means that the password will not be remembered. Setting it to -1 means that it will never be forgotten. The "runaspw" means that the user needs to have root's password to run sudo. "passwd_tries=1" means that zubin only gets one shot at getting the password correct. In general, many users can be added, each having a different default. If there is no ":" after Defaults, it is assumed to be global.&lt;br /&gt;&lt;br /&gt;If we simply don't want to enter any password, then we'd have to do this:&lt;br /&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;# User privilege specification&lt;br /&gt;root    ALL=(ALL) ALL&lt;br /&gt;zubin   ALL=(ALL)               NOPASSWD: ALL&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;sudo logs authentication failures to syslog by default. But if we change the file as shown, we can track every command run:&lt;br /&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;...&lt;br /&gt;# Defaults specification&lt;br /&gt;Defaults:logfile=/var/log/sudolog&lt;br /&gt;...&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;The user can also only be given specific commands:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;...&lt;br /&gt;zubin     ALL=    /bin/kill,/sbin/linuxconf, /usr/sbin/zubin/&lt;br /&gt;...&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;The "ALL" above refers to a network-wide sudo. In general, the particular machine name can be specified.&lt;br /&gt;&lt;br /&gt;To give zubin the power to kill users "user1" and "user2"'s processes, we could do:&lt;br /&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;...&lt;br /&gt;zubin     localhost=(user1,user2)   /bin/kill, /usr/sbin/zubin/&lt;br /&gt;...&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;But then, zubin would have to do this every time:&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;[zubin@localhost etc]$ sudo -u user1&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;To avoid, this, we simply add this to the defaults section:&lt;br /&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;Defaults:zubin    timestamp_timeout=-1, runas_default=user1&lt;br /&gt;&lt;/PRE&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-113045431524901512?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/113045431524901512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=113045431524901512&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113045431524901512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113045431524901512'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2005/10/using-sudo-for-layman.html' title='Using sudo - for the layman'/><author><name>Zubin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_pa_0Kzu2DKo/S-LHG5WyUiI/AAAAAAAALOY/QPEe2mwjz3I/S220/zb.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-113027304626607406</id><published>2005-10-25T22:41:00.000+02:00</published><updated>2005-10-25T22:44:41.733+02:00</updated><title type='text'>AVG and GMail POP3 Forwarding</title><content type='html'>The general directions on getting them to play nice are &lt;a href="http://forum.grisoft.cz/freeforum/read.php?3,25035,48898"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-113027304626607406?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/113027304626607406/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=113027304626607406&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113027304626607406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113027304626607406'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2005/10/avg-and-gmail-pop3-forwarding.html' title='AVG and GMail POP3 Forwarding'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-113007153054469587</id><published>2005-10-23T14:43:00.000+02:00</published><updated>2005-10-23T14:45:30.653+02:00</updated><title type='text'>Image resizing the easy way</title><content type='html'>Here's another one of my god-he's-so-new-to-Linux posts.&lt;br /&gt;&lt;br /&gt;I wanted to resize a very large (1280x1024) image into an avatar-sized (50x50) image and I found a really simple way of doing it:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;[zubin@localhost ~]$ convert ~/Desktop/big_image.jpg -resize 50x50 ~/Desktop/avatar.jpg&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-113007153054469587?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/113007153054469587/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=113007153054469587&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113007153054469587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113007153054469587'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2005/10/image-resizing-easy-way.html' title='Image resizing the easy way'/><author><name>Zubin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_pa_0Kzu2DKo/S-LHG5WyUiI/AAAAAAAALOY/QPEe2mwjz3I/S220/zb.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-113006455683839452</id><published>2005-10-23T12:44:00.000+02:00</published><updated>2005-10-23T12:49:16.843+02:00</updated><title type='text'>GIMP tutorial for the dummy</title><content type='html'>Ever opened the GIMP and wondered "what the hell is going on"? No? I must admit that I do. The other day I found a really nice tutorial online that covers most of the tasks (subdivided into beginner, intermediate, expert, photo editing, etc.) in a very lucid fashion. &lt;br /&gt;&lt;br /&gt;Find it all &lt;a href="http://mmmaybe.gimp.org/tutorials/"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-113006455683839452?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/113006455683839452/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=113006455683839452&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113006455683839452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113006455683839452'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2005/10/gimp-tutorial-for-dummy.html' title='GIMP tutorial for the dummy'/><author><name>Zubin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_pa_0Kzu2DKo/S-LHG5WyUiI/AAAAAAAALOY/QPEe2mwjz3I/S220/zb.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-113001530723993543</id><published>2005-10-22T23:02:00.000+02:00</published><updated>2005-10-22T23:34:10.566+02:00</updated><title type='text'>Updating to GNOME 2.12</title><content type='html'>From what I read, the new GNOME 2.12 desktop is really fast and has some new stuff. If you're interested in updating from 2.10 to 2.12, find instructions on how to do it &lt;A HREF="http://fedoranews.org/mediawiki/index.php/Upgrade_your_FC4_box_to_the_latest_Gnome_2.12_desktop"&gt; here&lt;/A&gt;.&lt;br /&gt;&lt;br /&gt;Author takes no responsibility.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-113001530723993543?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/113001530723993543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=113001530723993543&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113001530723993543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/113001530723993543'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2005/10/updating-to-gnome-212.html' title='Updating to GNOME 2.12'/><author><name>Zubin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_pa_0Kzu2DKo/S-LHG5WyUiI/AAAAAAAALOY/QPEe2mwjz3I/S220/zb.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-112992025339296034</id><published>2005-10-21T20:40:00.000+02:00</published><updated>2005-10-21T21:05:27.243+02:00</updated><title type='text'>VLC with FC4</title><content type='html'>So, here comes my first 2-cent-worth post. I know it's nothing spectacular but being a newbie, I feel a lot of things that are mundane matters for the experienced user are pretty confusing for the newcomer. Anyway, I realized that after installing VideoLanClient on my box, it would give a nice little segmentation fault and crash if I tried playing *.avi files. After consulting with darkknight, my mentor, I found out that the latest version of VLC (obtained from Livna) for FC4 using a 32 bit system was unstable. The solution: get an older version from the "dries" repository. Of course, you have to disable Livna so that yum gets the older version.&lt;br /&gt;&lt;br /&gt;This I did as follows:&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;[root@localhost ~]# yum --disablerepo=livna --enablerepo=dries install videolan-client&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;And viola!! It works!!! The only other problem I had was that subtitles failed to load. So, I went back to the terminal and looked at the error messages. A truetype font was missing. I downloaded the missing font and simply put it in the destination directory. This was done as follows:&lt;br /&gt;&lt;br /&gt;First the directory was created because it didn't exist earlier:&lt;br /&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;[zubin@localhost ~]$ sudo mkdir -p /usr/share/fonts/truetype/freefont&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;And then, I moved the font from my desktop (where I had saved it) to that folder:&lt;br /&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;[zubin@localhost ~]$ sudo mv ~/Desktop/FreeSerifBold.ttf /usr/share/fonts/truetype/freefont/&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;And there we go - if it wasn't for the damn midterm coming up, I'd have seen the movie. I guess I'll have to wait till Monday for that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-112992025339296034?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/112992025339296034/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=112992025339296034&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112992025339296034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112992025339296034'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2005/10/vlc-with-fc4.html' title='VLC with FC4'/><author><name>Zubin</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_pa_0Kzu2DKo/S-LHG5WyUiI/AAAAAAAALOY/QPEe2mwjz3I/S220/zb.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-112983666329564878</id><published>2005-10-20T21:26:00.000+02:00</published><updated>2005-10-20T21:31:03.303+02:00</updated><title type='text'>New Member</title><content type='html'>There's a new member in the scene .. meet Zub .. he's just installed FC4(i386) and is pretty new to Linux .. he'll be posting his experiences as well .. It's a good thing .. there'll probably some posts dealing with issues that are daunting to a newbie but that I find too trivial to bother with .. ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-112983666329564878?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/112983666329564878/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=112983666329564878&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112983666329564878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112983666329564878'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2005/10/new-member.html' title='New Member'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-112894843208668690</id><published>2005-10-10T14:24:00.000+02:00</published><updated>2005-10-10T14:56:00.536+02:00</updated><title type='text'>To boldly go .. where??</title><content type='html'>This isn't really TeX or Linux related but it's pretty amazing .. while &lt;a href="http://www.stumbleupon.com/"&gt;Stumbling&lt;/a&gt; along the net the other day, I came across this wonderful page:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mkaku.org/articles/"&gt;http://www.mkaku.org/articles/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The articles are a must read for anyone even slightly interested in the future. I find the concept of using &lt;a href="http://en.wikipedia.org/wiki/Von_Neumann_probe"&gt;von Neumann probes&lt;/a&gt; for space exploration quite intriguing.&lt;br /&gt;&lt;br /&gt;While we're still on the topic of the future, I just finished an article by Ray Kurzweil. It's called &lt;span style="font-weight:bold;"&gt;&lt;a href="http://www.kurzweilai.net/meme/frame.html?main=/articles/art0551.html"&gt;Human 2.0&lt;/a&gt;&lt;/span&gt; (September 24th issue of NewScientist). It basically predicts that by 2020 we'll have $1000 machines with the intellectual capacity of the human brain.. and soon afterwards we'll be augmenting and transcending our biological being with nanotechnology and other engineered parts .. It all sounds like mixed blessings .. guess I'll find out soon enough. Cybernetic implants,  here I come ... :)&lt;br /&gt;&lt;br /&gt;A lot of other interesting articles can be found at:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.kurzweilai.net/"&gt;KurzweilAI.net&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-112894843208668690?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/112894843208668690/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=112894843208668690&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112894843208668690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112894843208668690'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2005/10/to-boldly-go-where.html' title='To boldly go .. where??'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-112878776164017125</id><published>2005-10-08T18:03:00.000+02:00</published><updated>2005-10-08T18:09:21.646+02:00</updated><title type='text'>The 64-bit browser and 32-bit plugins dilemma ...</title><content type='html'>Although 64 bit OSs and hence browsers are (almost) commonplace these days, the same thing cannot be said of their plugin counterparts. To this date there are no 64bit Java and Flash plugins .. rendering a huge proportion of pages on the net inaccessible from a 64 bit browser .. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As of this moment, the popular solution to this problem is to have two browsers. A primary browser (e.g. 64 bit FireFox) and a seconday browser + plugins (32 bit). &lt;a href="http://www.opera.com"&gt;Opera&lt;/a&gt; seems to be a popular choice as the secondary browser since it's quite easy to get installed and use...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-112878776164017125?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/112878776164017125/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=112878776164017125&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112878776164017125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112878776164017125'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2005/10/64-bit-browser-and-32-bit-plugins.html' title='The 64-bit browser and 32-bit plugins dilemma ...'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-112855309583550710</id><published>2005-10-06T00:48:00.000+02:00</published><updated>2005-10-06T00:59:58.323+02:00</updated><title type='text'>Open files from a terminal</title><content type='html'>There's lot that can be learned from the conversations on the &lt;a href="https://www.redhat.com/archives/fedora-list/"&gt;fedora-list&lt;/a&gt;. Today I learnt of a nifty little tool called &lt;span style="font-weight:bold;"&gt;gnome-open&lt;/span&gt;. Basically you just type something like:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;[darkknight@darkworld ~]$ gnome-open file.cpp&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;and voila! It figures out the default application (under GNOME) for the files of type &lt;span style="font-style:italic;"&gt;*.cpp&lt;/span&gt; and opens the file using that default editor. I haven't verified, but it seems that instead of a file an URL can also be specified. Mmm .. it definitely creates the possibility of writing portable scripts; at least on GNOME systems anyway :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-112855309583550710?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/112855309583550710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=112855309583550710&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112855309583550710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112855309583550710'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2005/10/open-files-from-terminal.html' title='Open files from a terminal'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-112837956496821573</id><published>2005-10-04T00:17:00.000+02:00</published><updated>2005-10-04T00:51:24.073+02:00</updated><title type='text'>Addressing Individual Audio Channels of a Multichannel ALSA System</title><content type='html'>At first I thought I could just use one of the audio editors to create a 5 channel sound file and blank all the channels that I don't want. &lt;a href="http://sweep.sourceforge.net"&gt;Sweep&lt;/a&gt; claims to be a multichannel audio editor but at the moment it's not possible to edit the individual audio channels. So, I tried out &lt;a href="http://audacity.sourceforge.net"&gt;Audacity&lt;/a&gt;. Although Audacity allows the editing of the individual channels, it's not possible to save the edited file in a multichannel format - it's invariably down-mixed to stereo. So, custom sound files were no longer an option .. &lt;br /&gt;&lt;br /&gt;At this point, I started looking at the &lt;a href="http://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html"&gt;ALSA PCM plugins&lt;/a&gt;. The &lt;span style="font-weight:bold;"&gt;route&lt;/span&gt; plugin seemed like the perfect candidate. In order to use the plugin I had to create the plugin definitions in the file &lt;span style="font-style:italic;"&gt;~/.asoundrc&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;[darkknight@darkworld ~]$ cat .asoundrc&lt;br /&gt;pcm_slave.rt {&lt;br /&gt;        pcm surround50&lt;br /&gt;        channels 5&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;pcm.front_l {           #Front Left&lt;br /&gt;        type route&lt;br /&gt;        slave rt&lt;br /&gt;        ttable.0.0 1&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;pcm.front_r {           #Front Right&lt;br /&gt;        type route&lt;br /&gt;        slave rt&lt;br /&gt;        ttable.0.1 1&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;pcm.front_c {           #Front Center&lt;br /&gt;        type route&lt;br /&gt;        slave rt&lt;br /&gt;        ttable.0.4 1&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;pcm.rear_l {            #Rear Left&lt;br /&gt;        type route&lt;br /&gt;        slave rt&lt;br /&gt;        ttable.0.3 1&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;pcm.rear_r {            #Rear Right&lt;br /&gt;        type route&lt;br /&gt;        slave rt&lt;br /&gt;        ttable.0.2 1&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;pcm.front_both {        #Front - Both&lt;br /&gt;        type route&lt;br /&gt;        slave rt&lt;br /&gt;        ttable.0.0 1&lt;br /&gt;        ttable.0.1 1&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;pcm.rear_both {         #Rear - Both&lt;br /&gt;        type route&lt;br /&gt;        slave rt&lt;br /&gt;        ttable.0.2 1&lt;br /&gt;        ttable.0.3 1&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The plugins can be used with the &lt;span style="font-weight:bold;"&gt;aplay&lt;/span&gt; utility:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;[darkknight@darkworld ~]$ aplay -D front_c /usr/share/sounds/alsa/Front_Center.wav&lt;br /&gt;Playing WAVE '/usr/share/sounds/alsa/Front_Center.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Mono&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Of course it makes sense to use only Mono files with the plugins since the mappings are always carried out from channel 1. It's the &lt;span style="font-style:italic;"&gt;ttable&lt;/span&gt; entry that's responsible for the mapping. The first value is the source channel (0 = channel 1, 1 = channel 2, etc.). The second value is the channel to route to. The third value controls the volume; a value of 0 means 0% volume and a value of 1.0 means 100% volume.&lt;br /&gt;&lt;br /&gt;With the new plugin definitions, it's even easier to balance the speaker levels. The following command will alternate between the front speakers and the center speaker until interrupted:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;[darkknight@darkworld ~]$ while [ 1 ]; do /usr/bin/aplay -D front_both -q /usr/share/sounds/alsa/Noise.wav;&lt;br /&gt;/usr/bin/aplay -D front_c /usr/share/sounds/alsa/Noise.wav; done&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-112837956496821573?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/112837956496821573/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=112837956496821573&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112837956496821573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112837956496821573'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2005/10/addressing-individual-audio-channels.html' title='Addressing Individual Audio Channels of a Multichannel ALSA System'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-112772794234500758</id><published>2005-09-26T11:44:00.000+02:00</published><updated>2005-09-26T11:45:42.346+02:00</updated><title type='text'>The Trek Life</title><content type='html'>Love the new comic strips on Startrek.com:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.startrek.com/startrek/view/features/treklife.html"&gt;The Trek Life&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-112772794234500758?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/112772794234500758/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=112772794234500758&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112772794234500758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112772794234500758'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2005/09/trek-life.html' title='The Trek Life'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-112772772361955491</id><published>2005-09-26T11:36:00.000+02:00</published><updated>2005-09-26T11:42:03.623+02:00</updated><title type='text'>SUN Java on FC4</title><content type='html'>There's a nice article at &lt;a href="http://fedoranews.org/mediawiki/index.php/Main_Page"&gt;FedoraNEWS.ORG&lt;/a&gt; by Paul Howarth on how  to get the SUN Java working under FC4 using the new &lt;span style="font-style:italic;"&gt;alternatives&lt;/span&gt; system. So, here it is:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://fedoranews.org/mediawiki/index.php/JPackage_Java_for_FC4"&gt;JPackage Java for FC4&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-112772772361955491?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/112772772361955491/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=112772772361955491&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112772772361955491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112772772361955491'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2005/09/sun-java-on-fc4.html' title='SUN Java on FC4'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-112772650072435207</id><published>2005-09-26T10:36:00.000+02:00</published><updated>2005-09-26T11:26:30.306+02:00</updated><title type='text'>Firefox and MathML on Linux</title><content type='html'>While it's a little more work compared to Windows, getting MathML to work on Firefox isn't that hard. Now, it's easier than ever thanks to the *.spec files created by Michael A. Peters:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://mpeters.us/fc_extras/mathematica_ttf.spec"&gt;http://mpeters.us/fc_extras/mathematica_ttf.spec&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mpeters.us/fc_extras/mathtype_ttf.spec"&gt;http://mpeters.us/fc_extras/mathtype_ttf.spec&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;(Copies of the files are also available &lt;a href="http://pandora.iu-bremen.de/~mafgani/stuff/"&gt;here&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;Before we can start building RPMs as a regular user, we need to install the &lt;span style="font-style:italic;"&gt;fedora-rpmdevtools&lt;/span&gt; package from the &lt;a href="http://fedoraproject.org/wiki/Extras"&gt;Fedora Extras&lt;/a&gt; repo:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;[darkknight@darkworld ~]$ sudo yum install fedora-rpmdevtools&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Once that's installed, we need to create the directory tree and RPM macros needed by rpmbuild:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;[darkknight@darkworld ~]$ fedora-buildrpmtree&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Now that we're ready to build RPMs, we download and save the SPEC files under the &lt;span style="font-weight:bold;"&gt;~/rpmbuild/SPECS/&lt;/span&gt; tree:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;[darkknight@darkworld SPECS]$ wget http://mpeters.us/fc_extras/mathematica_ttf.spec http://mpeters.us/fc_extras/mathtype_ttf.spec&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Once we have the spec files, we need to get the sources. We can get them from the URLs specified in the respective spec files:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mathtype.com/en/dl/MathTypeTrueTypeFonts.asp"&gt;MathType&lt;/a&gt;&lt;br /&gt;&lt;a href="http://support.wolfram.com/mathematica/systems/windows/general/latestfonts.html"&gt;Mathematica&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;(We need the Mathematica 4.1 Fonts)&lt;br /&gt;&lt;br /&gt;We need to save the downloaded fonts under &lt;span style="font-weight:bold;"&gt;~/rpmbuild/SOURCES/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Next, we need to install the &lt;span style="font-style:italic;"&gt;cabextract&lt;/span&gt; package to satisfy build requirements:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;[darkknight@darkworld ~]$ sudo yum install cabextract&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Now, to build the font RPMs, switch to the &lt;span style="font-weight:bold;"&gt;~/rpmbuild/SPECS&lt;/span&gt; directory and run:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;[darkknight@darkworld SPECS]$ rpmbuild -bb mathtype_ttf.spec&lt;br /&gt;[...]&lt;br /&gt;&lt;br /&gt;[darkknight@darkworld SPECS]$ rpmbuild -bb mathematica_ttf.spec&lt;br /&gt;[...]&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;In both cases, the long messeges should end in:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;+ exit 0&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;If not, then you need to hunt down the problem and solve it. Assuming they both ended with the exit status '0', we can go ahead and install our freshly baked RPMs:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;[darkknight@darkworld ~]$ sudo yum localinstall ~/rpmbuild/RPMS/noarch/math*&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;In addition to those packages, we also need the &lt;span style="font-style:italic;"&gt;mathml-fonts&lt;/span&gt; package:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;[darkknight@darkworld ~]$ sudo yum install mathml-fonts&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Once we have all the required fonts, we have disble PANGO for firefox. In order to do this, we need to uncomment the following lines from &lt;span style="font-style:bold;"&gt;/usr/bin/firefox&lt;/span&gt; :&lt;br /&gt;&lt;br /&gt;MOZ_DISABLE_PANGO=1&lt;br /&gt;export MOZ_DISABLE_PANGO&lt;br /&gt;&lt;br /&gt;One that's done, we're good to go! We can test the new MathML rendering capabilities at:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mozilla.org/projects/mathml/demo/texvsmml.xhtml"&gt;http://www.mozilla.org/projects/mathml/demo/texvsmml.xhtml&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-112772650072435207?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/112772650072435207/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=112772650072435207&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112772650072435207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112772650072435207'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2005/09/firefox-and-mathml-on-linux.html' title='Firefox and MathML on Linux'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-112695207623395749</id><published>2005-09-17T12:09:00.000+02:00</published><updated>2005-09-17T12:21:16.570+02:00</updated><title type='text'>Inkscape</title><content type='html'>I installed &lt;a href="http://www.inkscape.org/"&gt;Inkscape&lt;/a&gt; a few days ago out of pure curiosity. Today I'm glad that I did .. I needed to touch up some diagrams with a few translucent windows here and there and GIMP didn't seem to have any easy of doing it. So came the first field test of Inkscape ..&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3504/251/1600/opt_frame008b1.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/3504/251/200/opt_frame008b.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It works quite well - at least from the first impression. I can already see it giving MS Visio a run for its money ...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-112695207623395749?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/112695207623395749/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=112695207623395749&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112695207623395749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112695207623395749'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2005/09/inkscape.html' title='Inkscape'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-112573102969784224</id><published>2005-09-03T09:00:00.000+02:00</published><updated>2005-09-08T18:53:37.410+02:00</updated><title type='text'>Bypassing Microsoft's "Genuine Advantage"</title><content type='html'>Piece of cake; before clicking "Express" or "Custom" paste the following in the addressbar and hit enter:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;javascript:void(window.g_sDisableWGACheck='all')&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Got this tip from &lt;a href="http://www.boingboing.net/2005/07/28/microsoft_genuine_ad.html"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-112573102969784224?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/112573102969784224/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=112573102969784224&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112573102969784224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112573102969784224'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2005/09/bypassing-microsofts-genuine-advantage.html' title='Bypassing Microsoft&apos;s &quot;Genuine Advantage&quot;'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-112514504171463513</id><published>2005-08-27T14:09:00.000+02:00</published><updated>2007-07-30T01:24:34.861+02:00</updated><title type='text'>Turn on 800DPI mode for the Logitech MX-510 Mouse</title><content type='html'>5 easy steps:&lt;br /&gt;&lt;br /&gt;1. Get and install the Logitech Applet from &lt;a href="http://freshmeat.net/projects/logitech_applet/"&gt;here&lt;/a&gt; or directly from &lt;a href="http://www.frogmouth.net/logitech_applet-0.4test1.tar.gz"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2. Install the poper udev rules:&lt;br /&gt;Create a file &lt;span style="font-weight: bold;"&gt;logitech-mice.rules&lt;/span&gt; under &lt;span style="font-weight: bold;"&gt;/etc/udev/rules.d/&lt;/span&gt; with the following contents:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;------------------------------------------&lt;br /&gt;[darkknight@darkworld rules.d]$ cat logitech-mice.rules&lt;br /&gt;BUS="usb", SYSFS{idVendor}="046d", SYSFS{idProduct}="c00e", PROGRAM="/usr/local/bin/logitech_applet -e -s 800"&lt;br /&gt;BUS="usb", SYSFS{idVendor}="046d", SYSFS{idProduct}="c00f", PROGRAM="/usr/local/bin/logitech_applet -e -s 800"&lt;br /&gt;BUS="usb", SYSFS{idVendor}="046d", SYSFS{idProduct}="c012", PROGRAM="/usr/local/bin/logitech_applet -e -s 800"&lt;br /&gt;BUS="usb", SYSFS{idVendor}="046d", SYSFS{idProduct}="c024", PROGRAM="/usr/local/bin/logitech_applet -e -s 800"&lt;br /&gt;BUS="usb", SYSFS{idVendor}="046d", SYSFS{idProduct}="c01b", PROGRAM="/usr/local/bin/logitech_applet -e -s 800"&lt;br /&gt;BUS="usb", SYSFS{idVendor}="046d", SYSFS{idProduct}="c025", PROGRAM="/usr/local/bin/logitech_applet -e -s 800"&lt;br /&gt;BUS="usb", SYSFS{idVendor}="046d", SYSFS{idProduct}="c01d", PROGRAM="/usr/local/bin/logitech_applet -e -s 800"&lt;br /&gt;BUS="usb", SYSFS{idVendor}="046d", SYSFS{idProduct}="c031", PROGRAM="/usr/local/bin/logitech_applet -e -s 800"&lt;br /&gt;------------------------------------------&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Change the file permissions:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;------------------------------------------&lt;br /&gt;[darkknight@darkworld rules.d]$ sudo chown root.root logitech-mice.rules&lt;br /&gt;[darkknight@darkworld rules.d]$ sudo chmod 644 logitech-mice.rules &amp;&amp;amp; ls -l&lt;br /&gt;total 24&lt;br /&gt;-rw-r--r--  1 root root  146 Apr 13 20:30 10-wacom.rules&lt;br /&gt;-rw-r--r--  1 root root 7406 May 21 05:45 50-udev.rules&lt;br /&gt;-rw-r--r--  1 root root  888 Sep  6 23:12 logitech-mice.rules&lt;br /&gt;------------------------------------------&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;3. Modify &lt;span style="font-weight: bold;"&gt;/etc/X11/xorg.conf&lt;/span&gt; as follows to support the thumb buttons:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;------------------------------------------&lt;br /&gt;Section "InputDevice"&lt;br /&gt;    Identifier  "Mouse0"&lt;br /&gt;    Driver      "mouse"&lt;br /&gt;    Option      "Protocol" "ExplorerPS/2"&lt;br /&gt;    Option      "Device" "/dev/input/mice"&lt;br /&gt;    Option      "ZAxisMapping" "6 7"&lt;br /&gt;    Option      "Buttons" "7"&lt;br /&gt;    Option      "Emulate3Buttons" "no"&lt;br /&gt;EndSection&lt;br /&gt;------------------------------------------&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;4. Create a script &lt;span style="font-weight: bold;"&gt;xmouse.sh&lt;/span&gt; under &lt;span style="font-weight: bold;"&gt;/etc/X11/xinit/xinitrc.d&lt;/span&gt; with the following contents:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;------------------------------------------&lt;br /&gt;[darkknight@darkworld xinitrc.d]$ cat xmouse.sh&lt;br /&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;/usr/X11R6/bin/xmodmap -e "pointer = 1 2 3 6 7 4 5"&lt;br /&gt;------------------------------------------&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This ensures that the scrolling funtion is correctly assigned to the wheel and not to the thumb buttons.&lt;br /&gt;&lt;br /&gt;Make sure that the file permissions are correct:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;------------------------------------------&lt;br /&gt;[darkknight@darkworld xinitrc.d]$ sudo chmod 755 xmouse.sh &amp;&amp;amp; ls -l&lt;br /&gt;total 16&lt;br /&gt;-rwxr-xr-x  1 root root 1579 Apr 11 13:43 xinput.sh&lt;br /&gt;-rwxr-xr-x  1 root root   81 Sep  2 17:36 xmbind.sh&lt;br /&gt;-rwxr-xr-x  1 root root   66 Sep  6 23:41 xmouse.sh&lt;br /&gt;------------------------------------------&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;5. Reboot (Or simply unplug/re-plug mouse and restart X)&lt;br /&gt;&lt;br /&gt;Happy surfing! Got the udev rules from the &lt;a href="http://ubuntuforums.org/showthread.php?t=4357"&gt;Ubuntu Forum&lt;/a&gt; (modified the PROGRAM line to use logitech_applet instead of lmctl).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Edit [July 30, 2007]:&lt;/span&gt;&lt;br /&gt;It has been a while since the steps above were posted. The syntax of UDEV rules have changed much since then. The updated rule is (for my MX-510):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$ cat /etc/udev/rules.d/60-logitech-mouse.rules&lt;br /&gt;SUBSYSTEMS=="usb", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c01d", RUN+="/usr/local/bin/logitech_applet -e -s 800"&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Device details necessary for writing UDEV rules can be discovered using (substitute &lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;/dev/input/mouse1&lt;/span&gt;&lt;/span&gt; with path to device of interest):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;# udevinfo -a -p $(udevinfo -q path -n /dev/input/mouse1)&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-112514504171463513?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/112514504171463513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=112514504171463513&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112514504171463513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112514504171463513'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2005/08/turn-on-800dpi-mode-for-logitech-mx.html' title='Turn on 800DPI mode for the Logitech MX-510 Mouse'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-112495833284998509</id><published>2005-08-25T10:16:00.000+02:00</published><updated>2005-09-08T18:56:06.736+02:00</updated><title type='text'>MATLAB 7 SP2 on FC4 (x86_64)</title><content type='html'>The installer will not run on a default install. To get that working, I needed to install  the &lt;span style="font-weight: bold;"&gt;xorg-x11-deprecated-libs.x86_64&lt;/span&gt; package. It appears to contain some libraries needed by the graphical installer. Once installed, the 64bit version spits out the following error (the 32bit install is fine):&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;------------------------------------------&lt;br /&gt;*** glibc detected *** malloc(): memory corruption: 0x0000000000598840 ***&lt;br /&gt;------------------------------------------&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The fix is:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;------------------------------------------&lt;br /&gt;$ LD_ASSUME_KERNEL=2.4.1&lt;br /&gt;$ export LD_ASSUME_KERNEL&lt;br /&gt;------------------------------------------&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;It's best to put these lines at the top of $MATLAB/bin/.matlab7rc.sh&lt;br /&gt;(where $MATLAB is the installation directory).&lt;br /&gt;&lt;br /&gt;Got this little hint from the MATLAB Support &lt;a href="http://www.mathworks.com/support/solutions/data/1-QVND8.html?solution=1-QVND8"&gt;site&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-112495833284998509?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/112495833284998509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=112495833284998509&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112495833284998509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112495833284998509'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2005/08/matlab-7-sp2-on-fc4-x8664.html' title='MATLAB 7 SP2 on FC4 (x86_64)'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-112495637425454654</id><published>2005-08-25T09:42:00.000+02:00</published><updated>2005-09-11T09:39:28.013+02:00</updated><title type='text'>Custom Keybinding (GNOME)</title><content type='html'>This is useful for multimedia keyboards that aren't automatically recognized. Also useful when you want actions other that those offered in "&lt;span style="font-weight: bold;"&gt;gnome-keybinding-properties&lt;/span&gt;". The first step is to check if the buttons are recognized at all. This can be accomplised by running "&lt;span style="font-weight: bold;"&gt;xev&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;$ xev&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Once the little window pops up, press any of the buttons and see if you get an output like the following:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;---------------------------------------------------------------------------------------------&lt;br /&gt;KeyPress event, serial 29, synthetic NO, window 0x3c00001,&lt;br /&gt;root 0xd6, subw 0x0, time 2073408, (1033,644), root:(1051,745),&lt;br /&gt;state 0x0, keycode 231 (keysym 0x0, NoSymbol), same_screen YES,&lt;br /&gt;XLookupString gives 0 bytes:&lt;br /&gt;XmbLookupString gives 0 bytes:&lt;br /&gt;XFilterEvent returns: False&lt;br /&gt;&lt;br /&gt;KeyRelease event, serial 29, synthetic NO, window 0x3c00001,&lt;br /&gt;root 0xd6, subw 0x0, time 2073529, (1033,644), root:(1051,745),&lt;br /&gt;state 0x0, keycode 231 (keysym 0x0, NoSymbol), same_screen YES,&lt;br /&gt;XLookupString gives 0 bytes:&lt;br /&gt;---------------------------------------------------------------------------------------------&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;If you do get the output, the important thing to note is the keycode (&lt;span style="font-weight: bold;"&gt;keycode 231&lt;/span&gt; here). Once you have the keycode for a key, you need to define a Key Symbol for it. To do this, you need a &lt;span style="font-weight: bold;"&gt;xmodmap&lt;/span&gt; file. You can get a copy of it using:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;---------------------------------------------------------------------------------------------&lt;br /&gt;$ xmodmap -pke &gt; ~/.xmodmaprc&lt;br /&gt;---------------------------------------------------------------------------------------------&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Once the current map is dumped, open the file for editing and locate the required keycode:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;---------------------------------------------------------------------------------------------&lt;br /&gt;$ vi ~/.xmodmaprc&lt;br /&gt;[snip]&lt;br /&gt;keycode 231 =&lt;br /&gt;[snip]&lt;br /&gt;---------------------------------------------------------------------------------------------&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;As we can see there is no symbol associated with the keycode 231 yet. To get a list of available symbols, look at &lt;span style="font-weight: bold;"&gt;/usr/X11R6/lib/X11/XKeysymDB&lt;/span&gt;. Since the button is marked as Refresh, we can use XF86Refresh as a suitable symbol:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;---------------------------------------------------------------------------------------------&lt;br /&gt;[snip]&lt;br /&gt;keycode 231 = XF86Refresh&lt;br /&gt;[snip]&lt;br /&gt;---------------------------------------------------------------------------------------------&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Once all the required keys have been set, save the file.&lt;br /&gt;&lt;br /&gt;To make the new map take effect (in GNOME):&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;---------------------------------------------------------------------------------------------&lt;br /&gt;$ gconftool-2 --set "/desktop/gnome/peripherals/keyboard/general/known_file_list" --type list --list-type string "[.xmodmaprc]"&lt;br /&gt;&lt;br /&gt;$ gconftool-2 --set "/desktop/gnome/peripherals/keyboard/general/update_handlers" --type list --list-type string "[.xmodmaprc]"&lt;br /&gt;---------------------------------------------------------------------------------------------&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;At this point you probably need to logout and log back in.&lt;br /&gt;&lt;br /&gt;Now, for the case where &lt;span style="font-weight: bold;"&gt;xev&lt;/span&gt; doesn't already detect the key. Start by tailing the &lt;span style="font-weight: bold;"&gt;/var/log/messeges&lt;/span&gt; file:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;---------------------------------------------------------------------------------------------&lt;br /&gt;$ sudo tail -f /var/log/messages&lt;br /&gt;---------------------------------------------------------------------------------------------&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The last lines of the file will be displayed. Now, press the desired key. Now, you should see something like&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;---------------------------------------------------------------------------------------------&lt;br /&gt;Aug 27 13:55:58 darkworld kernel: atkbd.c: Unknown key pressed (translated set 2, code 0x96 on isa0060/serio0).&lt;br /&gt;Aug 27 13:55:58 darkworld kernel: atkbd.c: Use 'setkeycodes e016 &amp;lt;keycode&amp;gt;' to make it known.&lt;br /&gt;Aug 27 13:55:58 darkworld kernel: atkbd.c: Unknown key released (translated set 2, code 0x96 on isa0060/serio0).&lt;br /&gt;Aug 27 13:55:58 darkworld kernel: atkbd.c: Use 'setkeycodes e016 &amp;lt;keycode&amp;gt;' to make it known.&lt;br /&gt;---------------------------------------------------------------------------------------------&lt;br /&gt;&lt;/keycode&gt;&lt;/keycode&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;So, as suggested, we make it known by:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;---------------------------------------------------------------------------------------------&lt;br /&gt;$ setkeycodes e016 187&lt;br /&gt;---------------------------------------------------------------------------------------------&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;I chose 187 since it doesn't appear to be used by any key yet. Once all the keycodes have been set, repeat as before to assign the key symbols.&lt;br /&gt;&lt;br /&gt;[Edit (Sept. 8, 2005)]&lt;br /&gt;It seems that there is a better way to choose the kernel keycode. We can run &lt;span style="font-weight: bold;"&gt;getkeycodes&lt;/span&gt; to see which keycodes  are currently in use. We can use any keycode between 84 and 255 that is not already used.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;---------------------------------------------------------------------------------------------&lt;br /&gt;$ getkeycodes&lt;br /&gt;Plain scancodes xx (hex) versus keycodes (dec)&lt;br /&gt;for 1-83 (0x01-0x53) scancode equals keycode&lt;br /&gt;&lt;br /&gt;0x50:   80  81  82  83  99   0  86  87&lt;br /&gt;0x58:   88 117   0   0  95 183 184 185&lt;br /&gt;0x60:    0   0   0   0   0   0   0   0&lt;br /&gt;0x68:    0   0   0   0   0   0   0   0&lt;br /&gt;0x70:   93   0   0  89   0   0  85  91&lt;br /&gt;0x78:   90  92   0  94   0 124 121   0&lt;br /&gt;&lt;br /&gt;Escaped scancodes e0 xx (hex)&lt;br /&gt;&lt;br /&gt;e0 00:    0 195 196 197 198   0   0   0&lt;br /&gt;e0 08:    0   0   0   0   0   0   0   0&lt;br /&gt;e0 10:  165   0   0   0   0   0   0   0&lt;br /&gt;e0 18:    0 163   0   0  96  97   0   0&lt;br /&gt;e0 20:  113 140 164   0 166   0   0   0&lt;br /&gt;e0 28:    0   0 255   0   0   0 114   0&lt;br /&gt;e0 30:  115   0 150   0   0  98 255  99&lt;br /&gt;e0 38:  100   0   0   0   0   0   0   0&lt;br /&gt;e0 40:    0   0   0   0   0 119 119 102&lt;br /&gt;e0 48:  103 104   0 105 112 106 118 107&lt;br /&gt;e0 50:  108 109 110 111   0   0   0   0&lt;br /&gt;e0 58:    0   0   0 125 126 127 116 142&lt;br /&gt;e0 60:    0   0   0 143   0 217 156 173&lt;br /&gt;e0 68:  128 159 158 157 155 226   0 112&lt;br /&gt;e0 70:    0   0   0   0   0   0   0   0&lt;br /&gt;e0 78:    0   0   0   0   0   0   0   0&lt;br /&gt;&lt;br /&gt;---------------------------------------------------------------------------------------------&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;It also seems we need to restore the kernel keycode mapping after every reboot. This is easily accomplished by having the required commands in &lt;span style="font-weight:bold;"&gt;/etc/rc.local&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;---------------------------------------------------------------------------------------------&lt;br /&gt;[darkknight@darkworld ~]$ cat /etc/rc.local&lt;br /&gt;#!/bin/sh&lt;br /&gt;#&lt;br /&gt;# This script will be executed *after* all the other init scripts.&lt;br /&gt;# You can put your own initialization stuff in here if you don't&lt;br /&gt;# want to do the full Sys V style init stuff.&lt;br /&gt;&lt;br /&gt;touch /var/lock/subsys/local&lt;br /&gt;&lt;br /&gt;setkeycodes e016 187 e015 188 e014 189 e013 190 e005 191&lt;br /&gt;            e01e 192 e009 193 e00b 202 e008 194 e018 199&lt;br /&gt;            e00a 200 e017 201 e03b 203 e03c 204 e03d 205&lt;br /&gt;            e03e 206 e03f 207 e040 208 e041 211 e042 210&lt;br /&gt;            e043 212 e023 213 e057 214 e058 215 e064 216&lt;br /&gt;[darkknight@darkworld ~]$&lt;br /&gt;---------------------------------------------------------------------------------------------&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The kernel keycodes are different from the keycodes used by X. So, we need to run &lt;span style="font-weight:bold;"&gt;xev&lt;/span&gt; again to get the keycodes (as seen by X) of the newly found keys.&lt;br /&gt;&lt;br /&gt;Got the hints from &lt;a href="http://linux.seindal.dk/item65.html"&gt;here&lt;/a&gt;.&lt;br /&gt;[End Edit]&lt;br /&gt;&lt;br /&gt;Now that we have KeySymbols, what do we do with them? Open up &lt;span style="font-weight: bold;"&gt;gconf-editor&lt;/span&gt; and browse to the key &lt;span style="font-weight: bold;"&gt;/apps/metacity/global_keybindings&lt;/span&gt;.  There, choose any of the &lt;span style="font-weight: bold;"&gt;run_command_*&lt;/span&gt; keys marked as disabled and change the value to the desired KeySymbol (e.g. XF86AudioPrev). Then navigate to the key &lt;span style="font-weight: bold;"&gt;/apps/metacity/keybinding_commands&lt;/span&gt; and find the &lt;span style="font-weight: bold;"&gt;command_*&lt;/span&gt; key with the same number as the &lt;span style="font-weight: bold;"&gt;run_command_*&lt;/span&gt;. Change the value of the key to whatever command you wish to be performed when the &lt;span style="font-weight: bold;"&gt;Previous&lt;/span&gt; key is pressed. If you happen to run out of &lt;span style="font-weight: bold;"&gt;run_command_*&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;command_*&lt;/span&gt; key pairs, simply create new pairs from the right click menu.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-112495637425454654?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/112495637425454654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=112495637425454654&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112495637425454654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112495637425454654'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2005/08/custom-keybinding-gnome.html' title='Custom Keybinding (GNOME)'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-112487820441093839</id><published>2005-08-24T12:06:00.000+02:00</published><updated>2005-09-08T18:59:09.290+02:00</updated><title type='text'>HTML Redirect</title><content type='html'>Ever since I started this blog, I've been looking at some HTML code fragments. Here's one to redirect pages:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&amp;lt;meta HTTP-EQUIV="REFRESH" content="0; url=http://www.yourdomain.com/index.html"&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Right now I'm using this to redirect visitors from my pandora home page to here. Got this fragment from this &lt;a href="http://www.web-source.net/html_redirect.htm"&gt;page&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-112487820441093839?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/112487820441093839/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=112487820441093839&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112487820441093839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112487820441093839'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2005/08/html-redirect.html' title='HTML Redirect'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-112487225433584703</id><published>2005-08-24T10:28:00.000+02:00</published><updated>2005-08-24T10:33:45.436+02:00</updated><title type='text'>Importing Firefox passwords from another profile</title><content type='html'>It's a lot simpler than I thought it would be - simply copy &lt;span style="font-weight: bold;"&gt;key3.db&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;signons.txt&lt;/span&gt; to the new profile and make sure they are writable.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-112487225433584703?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/112487225433584703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=112487225433584703&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112487225433584703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112487225433584703'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2005/08/importing-firefox-passwords-from.html' title='Importing Firefox passwords from another profile'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-112480259603501264</id><published>2005-08-23T15:03:00.000+02:00</published><updated>2005-11-19T17:16:18.593+01:00</updated><title type='text'>NTFS/FAT32 Volume Labels on GNOME computer://</title><content type='html'>By default, GNOME labels the drives by their sizes. The following *fdi scipt for HAL makes is possible to automount the volumes discovered at boot-time. The volumes are mounted and labeled according to their Volume Label under &lt;span style="font-style: italic;"&gt;/media&lt;/span&gt;. So, here it is:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;---------------------------------------------------------------------------------------------&lt;br /&gt;[darkknight@darkworld ~]$ cat storage-fixed.fdi&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="ISO-8859-1"?&amp;gt; &amp;lt;!-- -*- SGML -*- --&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;deviceinfo version="0.2"&amp;gt;&lt;br /&gt; &amp;lt;device&amp;gt;&lt;br /&gt;     &amp;lt;match key="volume.partition.msdos_part_table_type" int="0x07"&amp;gt;&lt;br /&gt;         &amp;lt;merge key="volume.policy.should_mount" type="bool"&amp;gt;true&amp;lt;/merge&amp;gt;&lt;br /&gt;         &amp;lt;merge key="volume.policy.mount_option.pamconsole" type="bool"&amp;gt;true&amp;lt;/merge&amp;gt;&lt;br /&gt;         &amp;lt;merge key="volume.policy.mount_option.noauto" type="bool"&amp;gt;false&amp;lt;/merge&amp;gt;&lt;br /&gt;         &amp;lt;merge key="volume.policy.mount_option.exec" type="bool"&amp;gt;false&amp;lt;/merge&amp;gt;&lt;br /&gt;         &amp;lt;merge key="volume.policy.mount_option.umask=022" type="bool"&amp;gt;true&amp;lt;/merge&amp;gt;&lt;br /&gt;         &amp;lt;merge key="volume.policy.mount_option.ro" type="bool"&amp;gt;true&amp;lt;/merge&amp;gt;&lt;br /&gt;     &amp;lt;/match&amp;gt;&lt;br /&gt; &amp;lt;/device&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;device&amp;gt;&lt;br /&gt;     &amp;lt;match key="volume.partition.msdos_part_table_type" int="0x0b"&amp;gt;&lt;br /&gt;         &amp;lt;merge key="volume.policy.should_mount" type="bool"&amp;gt;true&amp;lt;/merge&amp;gt;&lt;br /&gt;         &amp;lt;merge key="volume.policy.mount_option.pamconsole" type="bool"&amp;gt;true&amp;lt;/merge&amp;gt;&lt;br /&gt;         &amp;lt;merge key="volume.policy.mount_option.noauto" type="bool"&amp;gt;false&amp;lt;/merge&amp;gt;&lt;br /&gt;         &amp;lt;merge key="volume.policy.mount_option.exec" type="bool"&amp;gt;true&amp;lt;/merge&amp;gt;&lt;br /&gt;         &amp;lt;merge key="volume.policy.mount_option.umask=000" type="bool"&amp;gt;true&amp;lt;/merge&amp;gt;&lt;br /&gt;         &amp;lt;merge key="volume.policy.mount_option.rw" type="bool"&amp;gt;true&amp;lt;/merge&amp;gt;&lt;br /&gt;     &amp;lt;/match&amp;gt;&lt;br /&gt; &amp;lt;/device&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;device&amp;gt;&lt;br /&gt;     &amp;lt;match key="storage.hotpluggable" bool="false"&amp;gt;&lt;br /&gt;         &amp;lt;match key="storage.removable" bool="false"&amp;gt;&lt;br /&gt;             &amp;lt;merge key="storage.policy.should_mount" type="bool"&amp;gt;true&amp;lt;/merge&amp;gt;&lt;br /&gt;         &amp;lt;/match&amp;gt;&lt;br /&gt;     &amp;lt;/match&amp;gt;&lt;br /&gt; &amp;lt;/device&amp;gt;&lt;br /&gt;&amp;lt;/deviceinfo&amp;gt;&lt;br /&gt;[darkknight@darkworld ~]$&lt;br /&gt;---------------------------------------------------------------------------------------------&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The file should be placed under &lt;span style="font-style: italic;"&gt;/usr/share/hal/fdi/policy/10osvendor/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I know for sure that the NTFS part works, and someone with FAT32 volumes told me that FAT32 automount works as well.&lt;br /&gt;&lt;br /&gt;It is also available from &lt;a href="http://pandora.iu-bremen.de/%7Emafgani/stuff/storage-fixed.fdi"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-112480259603501264?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/112480259603501264/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=112480259603501264&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112480259603501264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112480259603501264'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2005/08/ntfsfat32-volume-labels-on-gnome.html' title='NTFS/FAT32 Volume Labels on GNOME computer://'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-112479927197949378</id><published>2005-08-23T14:07:00.000+02:00</published><updated>2005-10-03T13:26:58.266+02:00</updated><title type='text'>Audigy 2 ZS on FC4</title><content type='html'>I've finally got a setup that sounds just as good as it does on Windows. I've tested the surround system with a DVD and so far it sounds pretty good. I think the trouble was that there wasn't any signal generator to let me balance the speakers properly. But today I discovered that there is an &lt;span style="font-style: italic;"&gt;alsa&lt;/span&gt; subdirectory under &lt;span style="font-style: italic;"&gt;/usr/share/sounds &lt;/span&gt;that contains a noise file. Playing that in a loop:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;$ while [ 1 ]; do aplay /usr/share/sounds/alsa/Noise.wav; done&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;I finally managed to get that elusive speaker balance through &lt;span style="font-style: italic;"&gt;alsamixer.&lt;/span&gt; Now, all that's missing is CMSS3D :)&lt;br /&gt;&lt;br /&gt;This &lt;a href="http://alsa.opensrc.org/emu10k1"&gt;site&lt;/a&gt; might be useful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-112479927197949378?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/112479927197949378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=112479927197949378&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112479927197949378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112479927197949378'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2005/08/audigy-2-zs-on-fc4.html' title='Audigy 2 ZS on FC4'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-112464523968199905</id><published>2005-08-21T19:25:00.000+02:00</published><updated>2005-08-21T19:29:49.680+02:00</updated><title type='text'>Prosper (TeX) Tutorials</title><content type='html'>Found a couple of prosper tutorials that were particularly helpful:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.math.umbc.edu/%7Erouben/prosper/index.html"&gt;    A Prosper Tutorial&lt;/a&gt;&lt;/li&gt;   &lt;li&gt;&lt;a href="http://freshmeat.net/articles/view/667/"&gt;Making Presentations with LaTeX and Prosper&lt;/a&gt;  &lt;/li&gt; &lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-112464523968199905?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/112464523968199905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=112464523968199905&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112464523968199905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112464523968199905'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2005/08/prosper-tex-tutorials.html' title='Prosper (TeX) Tutorials'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-112462907714223412</id><published>2005-08-21T14:50:00.000+02:00</published><updated>2005-09-08T19:04:03.270+02:00</updated><title type='text'>VPN from Linux (x86_64)</title><content type='html'>The Cisco VPN client doesn't seem to compile on the 64bit architecture. Well, open source to the rescue .. behold &lt;a href="http://www.unix-ag.uni-kl.de/%7Emassar/vpnc/"&gt;VPNC&lt;/a&gt;. Since the Cisco profile files are no good, I needed to decrypt the group password - which was a piece of cake thanks to the password decryptor on the &lt;a href="http://www.unix-ag.uni-kl.de/%7Emassar/bin/cisco-decode"&gt;site&lt;/a&gt;. They say it's done through the command:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;# ltrace -i ./vpnclient connect ... 2&gt;&amp;amp;1 | fgrep 805ac57&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;I'll try it for myself sometime.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-112462907714223412?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/112462907714223412/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=112462907714223412&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112462907714223412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112462907714223412'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2005/08/vpn-from-linux-x8664.html' title='VPN from Linux (x86_64)'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-112455191116310415</id><published>2005-08-20T17:29:00.000+02:00</published><updated>2005-08-20T17:31:51.166+02:00</updated><title type='text'>Changing/Suppressing the "References" title from Bibliographies</title><content type='html'>The command needed is:&lt;br /&gt;&lt;br /&gt;\renewcommand\refname{New title}&lt;br /&gt;&lt;br /&gt;This is particularly useful for slides. Found this little trick &lt;a href="http://www-h.eng.cam.ac.uk/help/tpl/textprocessing/bibliographies.html"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-112455191116310415?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/112455191116310415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=112455191116310415&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112455191116310415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112455191116310415'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2005/08/changingsuppressing-references-title.html' title='Changing/Suppressing the &quot;References&quot; title from Bibliographies'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-112448942367073051</id><published>2005-08-19T23:59:00.000+02:00</published><updated>2005-08-20T00:10:23.676+02:00</updated><title type='text'>WebCollage</title><content type='html'>It seems FC4 has dropped the &lt;a href="http://www.jwz.org/webcollage/"&gt;WebCollage&lt;/a&gt; screensaver. So I had to install it myself. It's quite easy actually: just save the &lt;a href="http://www.jwz.org/webcollage/webcollage"&gt;file&lt;/a&gt; to  /usr/libexec/xscreensaver/ and you're done (almost). I think it must also be owned by &lt;span style="font-weight: bold;"&gt;root &lt;/span&gt;and be executable by all. It's a pretty cool  screensaver - you never know what you'll find ;)&lt;br /&gt;&lt;br /&gt;Actually, the main reason I went hunting for it was to track down &lt;a href="http://www.ex-parrot.com/%7Echris/driftnet/"&gt;Driftnet&lt;/a&gt;. It's a cool tool that essentially sniffs out images from the local network for you to see :D. Fortunately, it  was available from the &lt;a href="http://dries.ulyssis.org/rpm/"&gt;Dries&lt;/a&gt; rpm repo.&lt;span style="font-family: courier new;"&gt;&lt;/span&gt;&lt;span class="down" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt; &lt;span class="" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-112448942367073051?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/112448942367073051/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=112448942367073051&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112448942367073051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112448942367073051'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2005/08/webcollage.html' title='WebCollage'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-112448503563223362</id><published>2005-08-19T22:49:00.000+02:00</published><updated>2005-08-19T22:57:15.633+02:00</updated><title type='text'>GPLFlash 2</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3504/251/1600/Screenshot-About%20Plug-ins%20-%20Mozilla%20Firefox2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/3504/251/400/Screenshot-About%20Plug-ins%20-%20Mozilla%20Firefox.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Ok .. built and installed GPLFlash .. at least Firefox thinks it's installed. Time to give it a try: well .. seems like &lt;a href="http://www.startrek.com"&gt;StarTrek.com&lt;/a&gt; still won't work ..  guess it won't settle for anything less than Flash 6 :(&lt;span class="down" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-112448503563223362?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/112448503563223362/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=112448503563223362&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112448503563223362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112448503563223362'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2005/08/gplflash-2.html' title='GPLFlash 2'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-112448443262853258</id><published>2005-08-19T22:09:00.000+02:00</published><updated>2005-08-20T00:31:32.876+02:00</updated><title type='text'>GPLFlash</title><content type='html'>Ever since I installed FC4 64-bit, plugins have been a constant pain is the a**. I remembered seeing a reference to &lt;a href="http://gplflash.sourceforge.net/"&gt;GPLFlash&lt;/a&gt; some time back .. so I went and grabbed the source tarball .. unfortunately it requires too many *-devel packages and I can't afford the disk space. So, &lt;a href="http://rpm.pbone.net/"&gt;rpm.pbone.net&lt;/a&gt; to the rescue. I managed to find a x86_64 rpm for SuSE 9.3 - so I'm gonna give that a go. Seems like it needs &lt;span style="font-weight: bold;"&gt;libresmgr&lt;/span&gt; which is not in any of the FC repos I use. So, I also needed to borrow that from SuSE.&lt;br /&gt;&lt;br /&gt;It's now that I fully appreciate the new &lt;span style="font-weight: bold; font-style: italic;"&gt;localinstall&lt;/span&gt; option of yum. Point to to a local rpm and it sorts out dependencies from the actives repos .. just too cool..&lt;br /&gt;&lt;br /&gt;Ok .. this isn't going anywhere .. the dependencies are too SuSE centric .. guess I'll just have to get the *-devel packages and make do with the source tarball..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-112448443262853258?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/112448443262853258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=112448443262853258&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112448443262853258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112448443262853258'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2005/08/gplflash.html' title='GPLFlash'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15592649.post-112448148706096649</id><published>2005-08-19T21:54:00.000+02:00</published><updated>2005-08-20T00:20:29.970+02:00</updated><title type='text'>First blog</title><content type='html'>Well .. I've been giving this some thought .. the main motivation behind starting this thing is the fact that I seem to forget a lot of the stuff that I found out digging through the web, linux man pages etc.. let this be my (somewhat) permanent record of the things I do .. to save myself the trouble of backtracking through memory lane...&lt;br /&gt;&lt;br /&gt;I guess this will be mostly computer related .. Linux, TeX, etc..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15592649-112448148706096649?l=darkknight9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://darkknight9.blogspot.com/feeds/112448148706096649/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=15592649&amp;postID=112448148706096649&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112448148706096649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15592649/posts/default/112448148706096649'/><link rel='alternate' type='text/html' href='http://darkknight9.blogspot.com/2005/08/first-blog.html' title='First blog'/><author><name>DarkKnight</name><uri>http://www.blogger.com/profile/17107555160723365585</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
