<?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-7700475954028247590</id><updated>2011-10-18T21:05:45.186+01:00</updated><category term='konsole'/><category term='recovery'/><category term='charsets'/><category term='smtp'/><category term='cp850'/><category term='ms-dos'/><category term='resinstall'/><category term='qdbus'/><category term='fantec mm-hdrl review'/><category term='swaks'/><category term='title case'/><category term='DNS delays'/><category term='dbus'/><category term='dcop'/><category term='d-bus'/><category term='openoffice'/><category term='proper case'/><category term='kde4'/><category term='zenburn'/><category term='mail server'/><category term='smtp conversation'/><category term='character sets'/><category term='bilbo'/><category term='iso 8859-1'/><category term='python'/><category term='fantec mm-hdrl linux'/><category term='windows'/><category term='iconv'/><category term='unicode'/><category term='dos'/><category term='iso 8859-14'/><category term='toshiba'/><category term='openSUSE DNS'/><category term='blogging'/><category term='vista'/><category term='openoffice.org'/><title type='text'>an openSUSE blog</title><subtitle type='html'>A collection of random thoughts and tips on using openSUSE.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://usrlocalbin.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7700475954028247590/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://usrlocalbin.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>cm</name><uri>http://www.blogger.com/profile/02884362823199436058</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>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7700475954028247590.post-2995006755318960205</id><published>2011-03-18T17:33:00.001Z</published><updated>2011-03-18T17:35:05.053Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='openSUSE DNS'/><category scheme='http://www.blogger.com/atom/ns#' term='DNS delays'/><title type='text'>opensuse DNS delays</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p align='justify'&gt;The last few days since I installed openSUSE 11.4, I've had really frustrating delays with certain DNS lookups. zypper, for example, was taking 4-5 seconds to resolve each host when refreshed, particularly annoying if one just wants to search for a package and is forced to sit through a 2 minute delay. Happily, it is now resolved. Thanks to the discussion under &lt;a title='openSUSE DNS delay' href='https://bugzilla.novell.com/show_bug.cgi?id=530440'&gt;this bug&lt;/a&gt;, I learned that placing the line "options single-request" (without quotes) in /etc/resolv.conf solved the issue. According to man 5 resolv.conf, this forces glibc to perform the IPv6 and IPv4 requests sequentially, and not not in parallel which can cause timouts with certain DNS servers and then the delays I was seeing.&lt;/p&gt;&lt;p align='justify'&gt;Of course, you could also run nscd, which I don't for certain reasons, but still, all DNS lookups ought to be fairly instantaneous. Hope this helps someone. :)&lt;/p&gt;&lt;p align='justify'&gt;&lt;img height='1' width='1' src='https://blogger.googleusercontent.com/tracker/7700475954028247590-2995006755318960205?l=usrlocalbin.blogspot.com'/&gt;&lt;/p&gt;&lt;p align='justify'&gt;&lt;img height='1' width='1' src='https://blogger.googleusercontent.com/tracker/7700475954028247590-2995006755318960205?l=usrlocalbin.blogspot.com'/&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7700475954028247590-2995006755318960205?l=usrlocalbin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://usrlocalbin.blogspot.com/feeds/2995006755318960205/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7700475954028247590&amp;postID=2995006755318960205' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7700475954028247590/posts/default/2995006755318960205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7700475954028247590/posts/default/2995006755318960205'/><link rel='alternate' type='text/html' href='http://usrlocalbin.blogspot.com/2011/03/opensuse-dns-delays.html' title='opensuse DNS delays'/><author><name>cm</name><uri>http://www.blogger.com/profile/02884362823199436058</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-7700475954028247590.post-4177584345359681523</id><published>2010-08-31T21:34:00.001+01:00</published><updated>2010-08-31T21:44:04.100+01:00</updated><title type='text'>SonicWALL SSL-VPN NetExtender and openSUSE</title><content type='html'>&lt;div style="text-align: justify;"&gt;Seems the "stable" version of SonicWALL's NetExtender (3.5.632 at time of writing) does not play nicely with my installation of openSUSE 11.3. I didn't have much luck with 11.2 either, but to be honest, I didn't really go into how to fixing it. Anyhow, I hadn't looked at it in a while as it's not critical, but I needed to get some work done tonight from home, so I tried again. Still, no luck:&lt;/div&gt;&lt;br /&gt;&lt;code&gt;netExtenderGui [19:29] &lt;br /&gt;2010-08-31 19:30:05 BST INFO com.sonicwall.NetExtender Logging initialized.&lt;br /&gt;2010-08-31 19:30:06 BST INFO com.sonicwall.NetExtender NetExtender version 3.5.632 &lt;br /&gt;Making a global reference ot the NetExtenderControl object registered with JNI &lt;br /&gt;SUSE/Ubuntu compatibility mode on &lt;br /&gt;printlog: first getting class id &lt;br /&gt;printlog: getting printTologFromJNI method id &lt;br /&gt;Found method id &lt;br /&gt;,,,,,,,,,,,,,,, &lt;br /&gt;,,,mmbbbbbb11111111111111111111111bbbbbmm,,, &lt;br /&gt;,,,b||PPPPPPP||````````````````|PPPPPPPPP111111111111bbm,, &lt;br /&gt;`````` `````PPPP111111111bm, &lt;br /&gt;```PP1111111bm, &lt;br /&gt;`PP111111b, &lt;br /&gt;|111111: &lt;br /&gt;NetExtender for Linux - Version 3.5.632 .1111P|. &lt;br /&gt;Copyright (c) 2009 SonicWALL, Inc. ,b1PP|` &lt;br /&gt;,,||``` &lt;br /&gt;Loading saved profiles... &lt;br /&gt;JNI: setDestination:Setting Destination: ssl.--redacted!--.com (port 443) &lt;br /&gt;JNI: LaunchNX: mypid = 12448 &lt;br /&gt;JNI: LaunchNX: Launching NetExtender2 &lt;br /&gt;JNI: LaunchNX: Using destination IP ssl.--redacted!--.com &lt;br /&gt;JNI: LaunchNX: launching NX &lt;br /&gt;&lt;br /&gt;Connecting to SSL-VPN Server "ssl.--redacted!--.com:443". . . &lt;br /&gt;Connected. &lt;br /&gt;Logging in... &lt;br /&gt;Login successful. &lt;br /&gt;Using SSL Encryption Cipher 'DHE-RSA-AES256-SHA' &lt;br /&gt;Using new PPP frame encoding mechanism &lt;br /&gt;SSL-VPN logging out... &lt;br /&gt;SSL-VPN connection is terminated. &lt;br /&gt;Exiting NetExtender client &lt;br /&gt;JNI: LaunchNX: Exiting LaunchNX, returning (0) &lt;br /&gt;Loading saved profiles... &lt;br /&gt;2010-08-31 19:30:54 BST INFO com.sonicwall.gui.NetExtenderRootPanel NetExtender disconnected &lt;br /&gt;JNI: LaunchNX: mypid = 12448 &lt;br /&gt;JNI: LaunchNX: Launching NetExtender2 &lt;br /&gt;JNI: LaunchNX: Using destination IP ssl.--redacted!--.com &lt;br /&gt;JNI: LaunchNX: launching NX&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;And so on, it looped and looped before finally giving up. I discovered, through &lt;a href="http://ubuntuforums.org/showthread.php?t=1247402&amp;amp;page=2" title="ubuntuforums.org"&gt;this Ubuntu forum&lt;/a&gt;, that there is an updated, albeit a pre-release, version, namely 4.0.665. This version doesn't seem to be readily available on the mysonicwall.com site, even when logged in, as stated by some users. It is, however, easily obtainable by visiting SonicWALL's demo site, &lt;a href="https://sslvpn.demo.sonicwall.com/cgi-bin/welcome" title="sonicwall demo"&gt;https://sslvpn.demo.sonicwall.com&lt;/a&gt; and selecting the NetExtender icon. From there, you can unzip the file, and install as root or with sudo with a &lt;code&gt;./install&lt;/code&gt; in the resultant netExtenderClient folder. Agree to the auto-repair which is essentially just creating a symlink from &lt;code&gt;/lib/libssl.so.6 -&amp;gt; /lib/libssl.so.1.0.0&lt;/code&gt;.&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;The installer may ask if you want to run the app as route. Since received wisdom states that this is generally a bad idea, and will require further steps when you run the app, say no to this option. This will, however, mean that you will need to make sure that pppd itself is setuid root. The installer ought to take care of this if you add "fixppp" as the first argument , or it is simply achieved with the following command:&lt;/div&gt;&lt;br /&gt;&lt;code&gt;chmod 4755 /usr/sbin/pppd&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Once done, you ought to be able to run the pre-release version, using either the command &lt;code&gt;netExtenderGui&lt;/code&gt; from the command line, or by copying &lt;code&gt;/usr/share/netExtender/NetExtender.desktop&lt;/code&gt; to somewhere convenient and running that instead.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7700475954028247590-4177584345359681523?l=usrlocalbin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://usrlocalbin.blogspot.com/feeds/4177584345359681523/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7700475954028247590&amp;postID=4177584345359681523' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7700475954028247590/posts/default/4177584345359681523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7700475954028247590/posts/default/4177584345359681523'/><link rel='alternate' type='text/html' href='http://usrlocalbin.blogspot.com/2010/08/seems-stable-version-of-sonicwalls.html' title='SonicWALL SSL-VPN NetExtender and openSUSE'/><author><name>cm</name><uri>http://www.blogger.com/profile/02884362823199436058</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-7700475954028247590.post-3050344774281854035</id><published>2009-09-25T23:47:00.001+01:00</published><updated>2009-09-26T02:42:22.249+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fantec mm-hdrl linux'/><category scheme='http://www.blogger.com/atom/ns#' term='fantec mm-hdrl review'/><title type='text'>Fantec MM-HDRL and Linux</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p align='justify'&gt;Just bought myself a &lt;a href='http://www.fantec.de/html/en/2/artId/__1371/gid/__110090112090/article.html'&gt;Fantec MM-HDRL&lt;/a&gt;. It's a well designed, compact piece of hardware that is badly let down by the accompanying firmware, and is a particular disappointment to this long time linux user for reasons both idealogical and practical.&lt;/p&gt;&lt;p align='justify'&gt;Without going into too much extraneous detail, I shall just say that the interface is butt-ugly and somewhat slow to read folders of one's own media, but simple and intuitive enough to get by without recourse to the manual. RTFM? Only if strictly necessary.&lt;/p&gt;&lt;p align='justify'&gt;My first issue with the device, albeit one of which I was already aware before making the purchase, was that it supports only two types of file system for the media partition, NTFS and FAT32, both of which have their limitations for me. FAT is obviously well out of date, what with its file size and name length limitations, and NTFS support under Linux isn't all that it could be, particularly the issues that occur when the partition is not shut down cleanly and there is no Windows machine with which to run a repair. As I said, this was something I knew when I made the purchase, but it was slightly galling to find out as I did later that the root filesystem of the firmware was trusty old ext3, along with the usual tools mkfs.ext3 and fsck.ext3. It seems, then, rather churlish to utilise the filesystem of choice for many linuxers and indeed the choice of the programmers of the MM-HDRL, but not include this as an option for the media partition. I did reformat as ext3, in the hope that it would just work, albeit without any official support, but the media browser was unable to see anything on the partition after that, so I had to revert to FAT.&lt;/p&gt;&lt;p align='justify'&gt;Secondly, I was somewhat gobsmacked to find that the box is accessible on the network, via telnet, for users root, nobody, and guest, all without a password. Once in, setting said passwords, or indeed trying to tighten up security in any way is futile as the firmware is of course read-only. It does mean however that restricting access to the box on your local network is all but futile.&lt;/p&gt;&lt;p align='justify'&gt;It turns out that there are a group of hackers working on ways to unload the firmware into a directory so things like root passwords and ssh can be added. The only problem is that the source for this is unavailble as far as I can see, requires windows, and the downloads are apparently recognized by several antivirus softwares as containing a virus. In spite of the protestations of the developers that this is a result of false positives, it does mean that you have to take their word for it against your AV program - hmmmm. And that's assuming you actually have a copy of Windows which in my case is a negative. Not for me, thank you. That stuff is all &lt;a href='http://emtec.mhdworld.com/modules/newbb/viewforum.php?forum=35'&gt;here&lt;/a&gt;, but, at the time of writing, a post asking for the sources, and the developer declining to publish them (which may have changed), is unavailable.&lt;/p&gt;&lt;p align='justify'&gt;All in all, it's not a terrible piece of equipment but there are many little niggling issues that could be put right. In fact, it probably wouldn't hurt the owners of the device to open source it themselves and see if they can build up a community of hackers working on improving it.&lt;/p&gt;&lt;p&gt;&lt;img height='1' width='1' src='https://blogger.googleusercontent.com/tracker/7700475954028247590-3050344774281854035?l=usrlocalbin.blogspot.com'/&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7700475954028247590-3050344774281854035?l=usrlocalbin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://usrlocalbin.blogspot.com/feeds/3050344774281854035/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7700475954028247590&amp;postID=3050344774281854035' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7700475954028247590/posts/default/3050344774281854035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7700475954028247590/posts/default/3050344774281854035'/><link rel='alternate' type='text/html' href='http://usrlocalbin.blogspot.com/2009/09/fantec-mm-hdrl-and-linux.html' title='Fantec MM-HDRL and Linux'/><author><name>cm</name><uri>http://www.blogger.com/profile/02884362823199436058</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-7700475954028247590.post-6519831932413672930</id><published>2009-06-30T16:14:00.001+01:00</published><updated>2009-06-30T16:15:55.238+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vista'/><category scheme='http://www.blogger.com/atom/ns#' term='recovery'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='toshiba'/><category scheme='http://www.blogger.com/atom/ns#' term='resinstall'/><title type='text'>Fuck Toshiba</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;div align='justify'&gt;&lt;font face='sans-serif'&gt;A colleague of mine brought me his borked personal laptop&lt;/font&gt; the other day. I was to determine that the hard drive had failed, causing a fair amount of data loss, but otherwise all seemed ok with the rest of the laptop. On the face of it, simple enough - replace the 2.5 inch SATA drive and reinstall Vista. Ha! I hadn't counted on corportate shitbags Toshiba, from whom I will never knowingly purchase another component.&lt;br/&gt;&lt;br/&gt;The lappy came without any Vista disks, just a self restoring program on a separate partition of the hard disk drive, which of course was failing due to the disk corruption. At this stage I phoned Toshiba to see if I could get a replacement Vista disk from them. I ended up dealing with some strategically shaved chimp who told me that, as the customer hadn't taken any backups, we would need to purchase a restore disk for 30 squids. Well, that did it. Off to the Pirate Bay to get something that my colleague had actually paid for and had a license for already. (And via about 30 rootkit scanner sites too for post-install)!&lt;br/&gt;&lt;br/&gt;My thoughts on this are threefold. Firstly, fuck Toshiba (and any other vendors who do pull this kind of underhand shit). The person to whom the laptop belongs is a little clueless, but this is just taking the piss. Secondly, always check before you purchase a Windows machine that you are getting a &lt;i&gt;full&lt;/i&gt; Windows install disk in case you have to replace your hard drive. Otherwise you are going to end up paying another £30 odd for something you already thought you owned. And finally, at least there are alternatives and thank Cliff* I haven't had to use Windows in my personal or professional life for some years now.&lt;br/&gt;&lt;br/&gt;* ref, &lt;a href='http://en.wikipedia.org/wiki/The_Young_Ones_%28TV_series%29'&gt;The Young Ones&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7700475954028247590-6519831932413672930?l=usrlocalbin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://usrlocalbin.blogspot.com/feeds/6519831932413672930/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7700475954028247590&amp;postID=6519831932413672930' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7700475954028247590/posts/default/6519831932413672930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7700475954028247590/posts/default/6519831932413672930'/><link rel='alternate' type='text/html' href='http://usrlocalbin.blogspot.com/2009/06/fuck-toshiba.html' title='Fuck Toshiba'/><author><name>cm</name><uri>http://www.blogger.com/profile/02884362823199436058</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-7700475954028247590.post-4516262381130723521</id><published>2009-05-21T10:41:00.001+01:00</published><updated>2009-05-21T10:43:50.803+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iso 8859-14'/><category scheme='http://www.blogger.com/atom/ns#' term='ms-dos'/><category scheme='http://www.blogger.com/atom/ns#' term='dos'/><category scheme='http://www.blogger.com/atom/ns#' term='iso 8859-1'/><category scheme='http://www.blogger.com/atom/ns#' term='iconv'/><category scheme='http://www.blogger.com/atom/ns#' term='unicode'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='charsets'/><category scheme='http://www.blogger.com/atom/ns#' term='cp850'/><category scheme='http://www.blogger.com/atom/ns#' term='character sets'/><title type='text'>MS-DOS Codepage 850 to ISO 8859-14</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;div align='justify'&gt;Different character sets, don't you love 'em. Today I had to deal with some exported text that was DOS encoded (Codepage 850 to be precise), that was needed in ISO 8859-14 encoding. Luckily, this sort of thing is pretty straightforward in Linux. &lt;br/&gt;&lt;br/&gt;On the command line, glibc provides a fantastic converter called iconv. Invoking it is as simple as this:&lt;br/&gt;&lt;br/&gt;&lt;code&gt;iconv --from-code=CP850 --to-code=ISO-8859-14 \&lt;br/&gt;original_file &amp;gt; converted file&lt;/code&gt;&lt;br/&gt;&lt;br/&gt;In my case, I need to incorporate this into a python script. Luckily, python makes this very simple without having to resort to third party tools. Once you've read in your text, encode it into unicode and further encode it into your desired charset.&lt;br/&gt;&lt;/div&gt;&lt;br/&gt;&lt;code&gt;converted_text = unicode(original_txt, \&lt;br/&gt;'cp850').encode('iso8859_14')&lt;br/&gt;&lt;/code&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7700475954028247590-4516262381130723521?l=usrlocalbin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://usrlocalbin.blogspot.com/feeds/4516262381130723521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7700475954028247590&amp;postID=4516262381130723521' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7700475954028247590/posts/default/4516262381130723521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7700475954028247590/posts/default/4516262381130723521'/><link rel='alternate' type='text/html' href='http://usrlocalbin.blogspot.com/2009/05/ms-dos-codepage-850-to-iso-8859-14.html' title='MS-DOS Codepage 850 to ISO 8859-14'/><author><name>cm</name><uri>http://www.blogger.com/profile/02884362823199436058</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-7700475954028247590.post-7790923942731047370</id><published>2009-05-06T00:24:00.007+01:00</published><updated>2009-05-06T00:54:00.745+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='openoffice.org'/><category scheme='http://www.blogger.com/atom/ns#' term='proper case'/><category scheme='http://www.blogger.com/atom/ns#' term='openoffice'/><category scheme='http://www.blogger.com/atom/ns#' term='title case'/><title type='text'>OpenOffice.org Proper / Title Case</title><content type='html'>&lt;div style="text-align: justify;"&gt;Today I had to convert thousands of lines of text in OpenOffice Calc to title/proper case. I could have scripted it, but it felt like OpenOffice *should* have this sort of functionality built it. Under the Format-&gt;Change Case menu options, there are Uppercase/Lowercase options, but no title/proper case.&lt;br /&gt;&lt;br /&gt;I found a couple of old macros that purportedly did the job - they didn't work and I really didn't fancy fucking about with VBScript or whatever the hell it is. In my case, the simplest way to do this was to create a neighbouring column and enter =PROPER(A1) with A1 being the neighbouring cell. Copy this simple formula down the rest of the column, copy the values and paste-special the strings. Simples!&lt;br /&gt;&lt;br /&gt;I'm sure there are more elegant ways to do this but I had a deadline and I didn't really fancy any extra legwork, just to get the values converted. Hopefully this will save someone some time dicking about with macros that don't work and other such irritants.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7700475954028247590-7790923942731047370?l=usrlocalbin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://usrlocalbin.blogspot.com/feeds/7790923942731047370/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7700475954028247590&amp;postID=7790923942731047370' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7700475954028247590/posts/default/7790923942731047370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7700475954028247590/posts/default/7790923942731047370'/><link rel='alternate' type='text/html' href='http://usrlocalbin.blogspot.com/2009/05/openofficeorg-title-case.html' title='OpenOffice.org Proper / Title Case'/><author><name>cm</name><uri>http://www.blogger.com/profile/02884362823199436058</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>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7700475954028247590.post-8003695180648649790</id><published>2009-04-12T03:01:00.007+01:00</published><updated>2009-05-06T00:50:26.146+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='smtp'/><category scheme='http://www.blogger.com/atom/ns#' term='swaks'/><category scheme='http://www.blogger.com/atom/ns#' term='mail server'/><category scheme='http://www.blogger.com/atom/ns#' term='smtp conversation'/><title type='text'>swaks, an SMTP transaction tester</title><content type='html'>&lt;div style="text-align: justify;"&gt;I'm indebted to &lt;a href="http://www.debian-administration.org/articles/633"&gt;Debian Administration&lt;/a&gt; for alerting me to a tool which would have saved me a huge amount of time if I'd known of its existence earlier, namely &lt;a href="http://jetmore.org/john/code/swaks"&gt;swaks&lt;/a&gt;, an SMTP transaction tester. Ever get sick to death of typing and retyping an SMTP conversation into a malfunctioning mail server? Then swaks is for you, it takes all the boring, repetitive SMTP conversations out of the equation by automating it for you and displaying the results to the command line. Hooray!&lt;br /&gt;&lt;br /&gt;Man page &lt;a href="http://linux.die.net/man/1/swaks"&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7700475954028247590-8003695180648649790?l=usrlocalbin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://usrlocalbin.blogspot.com/feeds/8003695180648649790/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7700475954028247590&amp;postID=8003695180648649790' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7700475954028247590/posts/default/8003695180648649790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7700475954028247590/posts/default/8003695180648649790'/><link rel='alternate' type='text/html' href='http://usrlocalbin.blogspot.com/2009/04/swaks-and-smtp-transaction-tester.html' title='swaks, an SMTP transaction tester'/><author><name>cm</name><uri>http://www.blogger.com/profile/02884362823199436058</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-7700475954028247590.post-4522646575685839466</id><published>2009-03-17T23:11:00.002Z</published><updated>2009-03-18T11:12:15.332Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='bilbo'/><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><category scheme='http://www.blogger.com/atom/ns#' term='kde4'/><title type='text'>Bilbo Blogger</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p align='justify'&gt;Hmmm.. praps this new-fangled, KDE4 blogging app &lt;a href='http://bilbo.gnufolks.org/'&gt;Bilbo Blogger&lt;/a&gt; is what I need to get me out of my blogging torpor. Seems to wrestle with links somewhat, but it's early days.&lt;/p&gt;&lt;p align='justify'&gt;Build instructions &lt;a title='www.dennogumi.org' href='http://www.dennogumi.org/2009/03/bilbo-blogger'&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7700475954028247590-4522646575685839466?l=usrlocalbin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://usrlocalbin.blogspot.com/feeds/4522646575685839466/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7700475954028247590&amp;postID=4522646575685839466' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7700475954028247590/posts/default/4522646575685839466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7700475954028247590/posts/default/4522646575685839466'/><link rel='alternate' type='text/html' href='http://usrlocalbin.blogspot.com/2009/03/bilbo-blogger.html' title='Bilbo Blogger'/><author><name>cm</name><uri>http://www.blogger.com/profile/02884362823199436058</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-7700475954028247590.post-7555823840037480470</id><published>2008-04-17T17:33:00.009+01:00</published><updated>2009-03-17T23:14:45.598Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='dcop'/><category scheme='http://www.blogger.com/atom/ns#' term='qdbus'/><category scheme='http://www.blogger.com/atom/ns#' term='dbus'/><category scheme='http://www.blogger.com/atom/ns#' term='kde4'/><category scheme='http://www.blogger.com/atom/ns#' term='d-bus'/><title type='text'>simple qdbus tutorial (part two)</title><content type='html'>&lt;div style="text-align: justify;"&gt;Following on from &lt;a href="http://usrlocalbin.blogspot.com/2008/04/qdbus-tutorial-part-one.html" title="http://usrlocalbin.blogspot.com/2008/04/qdbus-tutorial-part-one.html"&gt;part one of my qdbus tutorial&lt;/a&gt;, we move on to look into what happens when we try to manipulate a D-Bus capable application that is already running in remote session. This is not as easy as one might imagine. It's certainly not difficult, but it did take me a little while and some help off the mailing lists to work out what I wanted to do.&lt;br /&gt;&lt;br /&gt;For demonstration purposes, I shall be logged in remotely on my home machine via ssh. If I run qdbus as per the last tutorial it fails immediately.&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;code&gt;   cm@pablo:~&gt; qdbus&lt;br /&gt;  Could not connect to D-Bus server: org.freedesktop.DBus.Error.Spawn.ExecFailed: dbus-launch failed to autolaunch D-Bus session: Autolaunch error: X11 initialization failed.&lt;br /&gt;&lt;/code&gt;&lt;/blockquote&gt;&lt;div style="text-align: justify;"&gt;X11? WTF? This may initially seem that qdbus is dependent on an accessible X session. Indeed, if I were to log out, and login again using ssh -X this problem would go away. The big issue being that I would then be connecting to the bus on the local machine and not the remote one which I am trying to manipulate.&lt;br /&gt;&lt;br /&gt;What's really happening here is that qdbus is looking for the all important shell variable DBUS_SESSION_BUS_ADDRESS which contains a unique address for each bus. Not finding this, it's running dbus-launch --autostart to try and determine the address by querying another X window. Of course it then fails if it is unable to connect to any X session.&lt;br /&gt;&lt;br /&gt;The obvious way to get around this is to set this variable. But how do we determine the bus address that we need to connect to our running instance of a program?  This is not difficult, but it's not the most obvious method. As far as I am aware, there is no other easy way to do this - perhaps in future versions this will become more trivial.&lt;br /&gt;&lt;br /&gt;The first thing to do is determine the PID of the app that we are after (ktorrent as in the last example).&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;code&gt;cm@pablo:~&gt; ps -ef|grep -i ktorrent&lt;br /&gt;cm     4685     1  1 08:50 ?        00:06:17 ktorrent&lt;br /&gt;&lt;/code&gt;&lt;/blockquote&gt;&lt;div style="text-align: justify;"&gt;So, we can see that ktorrent has a PID of 4685. Now to determine the relevant bus address being used by this program (obviously replacing the example PID with the actual one).&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;code&gt;cm@pablo:~&gt; cat /proc/4685/environ&lt;/code&gt;&lt;/blockquote&gt;&lt;div style="text-align: justify;"&gt;This will spew out a stack of environment variables, amongst them, with any luck, the one we are after: DBUS_SESSION_BUS_ADDRESS. What we want to do is export this shell variable, so it is available to our shell session and we in turn will be able to manipulate our app:&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;code&gt;export  DBUS_SESSION_BUS_ADDRESS="unix:abstract=/tmp/dbus-tIGLky9nbN,guid=49eaa775154aa8aa83ba330048070013"&lt;/code&gt;&lt;/blockquote&gt;&lt;div style="text-align: justify;"&gt;The above will all be on one line of course (or properly escaped). Having done this, set your faces to stunned as now when you run qdbus, you are now seeing the apps on the correct bus:&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;code&gt;cm@pablo:~&gt; qdbus&lt;br /&gt;:1.0&lt;br /&gt;org.ktorrent.ktorrent&lt;br /&gt;:1.2&lt;br /&gt;org.kde.klauncher&lt;br /&gt;:1.3&lt;br /&gt;org.kde.kded&lt;br /&gt;org.kde.kwalletd&lt;br /&gt;:1.69&lt;br /&gt;:1.70&lt;br /&gt;org.freedesktop.DBus&lt;/code&gt;&lt;/blockquote&gt;&lt;div style="text-align: justify;"&gt;And that's the end of my introduction to qdbus!&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7700475954028247590-7555823840037480470?l=usrlocalbin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://usrlocalbin.blogspot.com/feeds/7555823840037480470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7700475954028247590&amp;postID=7555823840037480470' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7700475954028247590/posts/default/7555823840037480470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7700475954028247590/posts/default/7555823840037480470'/><link rel='alternate' type='text/html' href='http://usrlocalbin.blogspot.com/2008/04/simple-qdbus-tutorial-part-two.html' title='simple qdbus tutorial (part two)'/><author><name>cm</name><uri>http://www.blogger.com/profile/02884362823199436058</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-7700475954028247590.post-5738897763194536633</id><published>2008-04-17T14:56:00.020+01:00</published><updated>2008-04-17T18:06:53.813+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dcop'/><category scheme='http://www.blogger.com/atom/ns#' term='qdbus'/><category scheme='http://www.blogger.com/atom/ns#' term='dbus'/><category scheme='http://www.blogger.com/atom/ns#' term='d-bus'/><title type='text'>simple qdbus tutorial (part one)</title><content type='html'>&lt;div style="text-align: justify;"&gt;If you are a reasonably seasoned user of kde, the chances are you will have encountered the Desktop COmmunications Protocol, or &lt;a href="http://developer.kde.org/documentation/other/dcop.html"&gt;DCOP&lt;/a&gt;. Now, DCOP has many uses, it is useful for apps to communicate with each other, it is certainly handy when scripting for a GUI app. Personally I find the most useful aspect of DCOP is the ability to control GUI apps remotely, and to see what they are up to. For example, if I wish to find out what song amarok is playing on a remote machine, I can execute the following on the command line (as root):&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;code&gt;dcop --user fred amarok player nowPlaying&lt;/code&gt;&lt;/blockquote&gt;&lt;div style="text-align: justify;"&gt;Pretty nifty. But DCOP is now being phased out, and is being replaced by &lt;a href="http://www.freedesktop.org/wiki/Software/dbus"&gt;D-Bus&lt;/a&gt;. D-Bus is heavily influenced by DCOP and the basics are fairly easily learned.&lt;br /&gt;&lt;br /&gt;This post will attempt to show how to communicate with D-Bus, specifically using qdbus. (qdbusviewer may be a topic for another time, but do have a look at it - it may be a whole lot more self-explanatory).&lt;br /&gt;&lt;br /&gt;First off, let's see what happens when we run qdbus on its own:&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;code&gt;cm@fool:~&gt; qdbus&lt;br /&gt;:1.0&lt;br /&gt;org.kde.KResourcesManager&lt;br /&gt;org.kde.kopete&lt;br /&gt;:1.2&lt;br /&gt;org.kde.klauncher&lt;br /&gt;:1.23&lt;br /&gt;:1.3&lt;br /&gt;org.kde.kded&lt;br /&gt;org.kde.kwalletd&lt;br /&gt;:1.30&lt;br /&gt;org.ktorrent.ktorrent&lt;br /&gt;:1.37&lt;br /&gt;:1.38&lt;br /&gt;:1.6&lt;br /&gt;org.kde.kwalletmanager&lt;br /&gt;:1.8&lt;br /&gt;org.kde.knotify&lt;br /&gt;org.freedesktop.DBus&lt;/code&gt;&lt;/blockquote&gt;&lt;div style="text-align: justify;"&gt;That give us a list of all the applications we can manipulate using qdbus. In this instance we'll focus on ktorrent. First I want to see what objects are available in the application:&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;code&gt;cm@fool:~&gt; qdbus org.ktorrent.ktorrent&lt;br /&gt;/&lt;br /&gt;/KDebug&lt;br /&gt;/KIO&lt;br /&gt;/KIO/Scheduler&lt;br /&gt;/KTorrent&lt;br /&gt;/MainApplication&lt;br /&gt;/ktorrent&lt;br /&gt;/ktorrent/MainWindow_1&lt;br /&gt;/ktorrent/MainWindow_1/actions&lt;br /&gt;/ktorrent/MainWindow_1/actions/file_new&lt;br /&gt;/ktorrent/MainWindow_1/actions/file_open&lt;br /&gt;/ktorrent/MainWindow_1/actions/file_quit&lt;br /&gt;/ktorrent/MainWindow_1/actions/options_show_statusbar&lt;br /&gt;/ktorrent/MainWindow_1/actions/options_show_menubar&lt;br /&gt;/ktorrent/MainWindow_1/actions/options_configure&lt;br /&gt;/ktorrent/MainWindow_1/actions/options_configure_keybinding&lt;br /&gt;/ktorrent/MainWindow_1/actions/options_configure_toolbars&lt;br /&gt;/ktorrent/MainWindow_1/actions/help_contents&lt;br /&gt;/ktorrent/MainWindow_1/actions/help_whats_this&lt;br /&gt;/ktorrent/MainWindow_1/actions/help_report_bug&lt;br /&gt;/ktorrent/MainWindow_1/actions/switch_application_language&lt;br /&gt;/ktorrent/MainWindow_1/actions/help_about_app&lt;br /&gt;/ktorrent/MainWindow_1/actions/help_about_kde&lt;br /&gt;&lt;/code&gt;&lt;/blockquote&gt;&lt;div style="text-align: justify;"&gt;Each of these objects will have methods (functions) and variables, with which we can manipulate the program, and learn about the current status of the program.&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;code&gt;cm@fool:~&gt; qdbus org.ktorrent.ktorrent /KTorrent&lt;br /&gt;method int org.ktorrent.KTorrent.downloadSpeed(QString torrent)&lt;br /&gt;method void org.ktorrent.KTorrent.start(QString torrent)&lt;br /&gt;method void org.ktorrent.KTorrent.startAll()&lt;br /&gt;method void org.ktorrent.KTorrent.stop(QString torrent)&lt;br /&gt;method void org.ktorrent.KTorrent.stopAll()&lt;br /&gt;signal void org.ktorrent.KTorrent.torrentAdded(QString tor)&lt;br /&gt;signal void org.ktorrent.KTorrent.torrentRemoved(QString tor)&lt;br /&gt;method QStringList org.ktorrent.KTorrent.torrents()&lt;br /&gt;method int org.ktorrent.KTorrent.uploadSpeed(QString torrent)&lt;br /&gt;method QDBusVariant org.freedesktop.DBus.Properties.Get(QString interface_name, QString property_name)&lt;br /&gt;method void org.freedesktop.DBus.Properties.Set(QString interface_name, QString property_name, QDBusVariant value)&lt;br /&gt;method QString org.freedesktop.DBus.Introspectable.Introspect()&lt;/code&gt;&lt;/blockquote&gt;&lt;div style="text-align: justify;"&gt;This gives me a list of available methods with any required arguments in brackets. The names of many of these functions makes their use obvious, for example the &lt;code&gt;org.ktorrent.KTorrent.stopAll()&lt;/code&gt; function will stop all active torrents. If we try it, we find out that that is indeed what happens. Similarly, &lt;code&gt;qdbus org.ktorrent.ktorrent /KTorrent org.ktorrent.KTorrent.torrents&lt;/code&gt; will list the torrents currently being downloaded:&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;code&gt;cm@fool:~&gt; qdbus org.ktorrent.ktorrent /KTorrent org.ktorrent.KTorrent.torrents&lt;br /&gt;drivexv_drivexv.zip&lt;/code&gt;&lt;/blockquote&gt;&lt;div style="text-align: justify;"&gt;As we can see, one torrent is currently being downloaded, a zip file from &lt;a href="http://stereogum.com/drivexv/"&gt;stereogum&lt;/a&gt;. A couple of things to note. Although the function description will contain brackets, the command itself must not. Arguments must be placed sequentially after the function, again without brackets.&lt;br /&gt;&lt;br /&gt;And that's the basic usage of qdbus. Next time we'll look at doing this remotely, as the above will &lt;span style="font-style: italic;"&gt;not&lt;/span&gt; work on a remote machine without tinkering a little. The reason being that you will most likely be querying a different bus to the one that is running your app.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7700475954028247590-5738897763194536633?l=usrlocalbin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://usrlocalbin.blogspot.com/feeds/5738897763194536633/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7700475954028247590&amp;postID=5738897763194536633' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7700475954028247590/posts/default/5738897763194536633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7700475954028247590/posts/default/5738897763194536633'/><link rel='alternate' type='text/html' href='http://usrlocalbin.blogspot.com/2008/04/qdbus-tutorial-part-one.html' title='simple qdbus tutorial (part one)'/><author><name>cm</name><uri>http://www.blogger.com/profile/02884362823199436058</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>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7700475954028247590.post-3667975657479847103</id><published>2008-04-12T19:09:00.010+01:00</published><updated>2008-09-15T00:10:59.278+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zenburn'/><category scheme='http://www.blogger.com/atom/ns#' term='kde4'/><category scheme='http://www.blogger.com/atom/ns#' term='konsole'/><title type='text'>Zenburn for Konsole Redux</title><content type='html'>&lt;style type="text/css"&gt; li { white-space: pre-wrap; } &lt;/style&gt; &lt;p style="margin: 0px; text-indent: 0px; text-align: justify;"&gt;One of my favorite kde apps is &lt;a href="http://konsole.kde.org/" title="http://konsole.kde.org/"&gt;konsole&lt;/a&gt;. A while ago I discovered &lt;a href="http://slinky.imukuppi.org/zenburn/"&gt;Zenburn&lt;/a&gt; which is just about the only sane colorscheme for terminal editing of any sort, and especially in vim. Then I discovered that some enterprising chap had knocked together &lt;a href="http://termos.vemod.net/zenburn-for-konsole" title="http://termos.vemod.net/zenburn-for-konsole"&gt;Zenburn for konsole&lt;/a&gt;. Seventh heaven ensued. But lately, as I've been dabbling in kde4 I've been really missing Zenburn in the new version of konsole. So I give you &lt;a href="http://pastebin.ca/982583" title="http://pastebin.ca/982583"&gt;Zenburn for Konsole Redux&lt;/a&gt;, shamelessly built on the hard work of others so that you don't have to spend half your evening fiddling about with annoying colorscheme settings just to get it right.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;UPDATED&lt;/span&gt;: Thanks to &lt;a href="http://www.blogger.com/profile/11347342670122222784"&gt;Sterling Winter&lt;/a&gt; who pointed out in the comments that the link no longer works. So here it is inline, hopefully blogger will react sanely as it so often doesn't with any code examples etc. :)&lt;br /&gt;&lt;code&gt;&lt;br /&gt;[Background]&lt;br /&gt;Bold=false&lt;br /&gt;Color=63,63,63&lt;br /&gt;Transparency=true&lt;br /&gt;&lt;br /&gt;[BackgroundIntense]&lt;br /&gt;Bold=false&lt;br /&gt;Color=63,63,63&lt;br /&gt;Transparency=true&lt;br /&gt;&lt;br /&gt;[Color0]&lt;br /&gt;Bold=false&lt;br /&gt;Color=63,63,63&lt;br /&gt;Transparency=false&lt;br /&gt;&lt;br /&gt;[Color0Intense]&lt;br /&gt;Bold=false&lt;br /&gt;Color=112,144,128&lt;br /&gt;Transparency=false&lt;br /&gt;&lt;br /&gt;[Color1]&lt;br /&gt;Bold=false&lt;br /&gt;Color=112,80,80&lt;br /&gt;Transparency=false&lt;br /&gt;&lt;br /&gt;[Color1Intense]&lt;br /&gt;Bold=false&lt;br /&gt;Color=220,163,163&lt;br /&gt;Transparency=false&lt;br /&gt;&lt;br /&gt;[Color2]&lt;br /&gt;Bold=false&lt;br /&gt;Color=96,180,138&lt;br /&gt;Transparency=false&lt;br /&gt;&lt;br /&gt;[Color2Intense]&lt;br /&gt;Bold=false&lt;br /&gt;Color=195,191,159&lt;br /&gt;Transparency=false&lt;br /&gt;&lt;br /&gt;[Color3]&lt;br /&gt;Bold=false&lt;br /&gt;Color=223,175,143&lt;br /&gt;Transparency=false&lt;br /&gt;&lt;br /&gt;[Color3Intense]&lt;br /&gt;Bold=false&lt;br /&gt;Color=240,223,175&lt;br /&gt;Transparency=false&lt;br /&gt;&lt;br /&gt;[Color4]&lt;br /&gt;Bold=false&lt;br /&gt;Color=80,96,112&lt;br /&gt;Transparency=false&lt;br /&gt;&lt;br /&gt;[Color4Intense]&lt;br /&gt;Bold=false&lt;br /&gt;Color=148,192,243&lt;br /&gt;Transparency=false&lt;br /&gt;&lt;br /&gt;[Color5]&lt;br /&gt;Bold=false&lt;br /&gt;Color=220,140,195&lt;br /&gt;Transparency=false&lt;br /&gt;&lt;br /&gt;[Color5Intense]&lt;br /&gt;Bold=false&lt;br /&gt;Color=236,147,211&lt;br /&gt;Transparency=false&lt;br /&gt;&lt;br /&gt;[Color6]&lt;br /&gt;Bold=false&lt;br /&gt;Color=140,209,211&lt;br /&gt;Transparency=false&lt;br /&gt;&lt;br /&gt;[Color6Intense]&lt;br /&gt;Bold=false&lt;br /&gt;Color=147,225,227&lt;br /&gt;Transparency=false&lt;br /&gt;&lt;br /&gt;[Color7]&lt;br /&gt;Bold=false&lt;br /&gt;Color=220,220,204&lt;br /&gt;Transparency=false&lt;br /&gt;&lt;br /&gt;[Color7Intense]&lt;br /&gt;Bold=false&lt;br /&gt;Color=255,255,255&lt;br /&gt;Transparency=false&lt;br /&gt;&lt;br /&gt;[Foreground]&lt;br /&gt;Bold=false&lt;br /&gt;Color=220,220,204&lt;br /&gt;Transparency=false&lt;br /&gt;&lt;br /&gt;[ForegroundIntense]&lt;br /&gt;Bold=true&lt;br /&gt;Color=220,220,204&lt;br /&gt;Transparency=false&lt;br /&gt;&lt;br /&gt;[General]&lt;br /&gt;Description=Zenburn&lt;br /&gt;Opacity=1&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Copy it into ~/.kde4/share/apps/konsole/Zenburn.colorscheme and select it in the Settings-&gt;Manage Profiles-&gt;Edit Profiles Appearance tab.&lt;br /&gt;&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_fZaxqDOIjD8/SAEDxN2qhGI/AAAAAAAAAAc/YNZm6yZ1tGo/s1600-h/Zenburn.png"&gt;&lt;br /&gt;&lt;/a&gt;&lt;p style="margin: 0px; text-indent: 0px;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_fZaxqDOIjD8/SAEEGd2qhHI/AAAAAAAAAAk/2_nzZDHhYbI/s1600-h/zenburn.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_fZaxqDOIjD8/SAEEGd2qhHI/AAAAAAAAAAk/2_nzZDHhYbI/s400/zenburn.png" alt="" id="BLOGGER_PHOTO_ID_5188432754847155314" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7700475954028247590-3667975657479847103?l=usrlocalbin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://usrlocalbin.blogspot.com/feeds/3667975657479847103/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7700475954028247590&amp;postID=3667975657479847103' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7700475954028247590/posts/default/3667975657479847103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7700475954028247590/posts/default/3667975657479847103'/><link rel='alternate' type='text/html' href='http://usrlocalbin.blogspot.com/2008/04/zenburn-for-konsole-redux.html' title='Zenburn for Konsole Redux'/><author><name>cm</name><uri>http://www.blogger.com/profile/02884362823199436058</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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_fZaxqDOIjD8/SAEEGd2qhHI/AAAAAAAAAAk/2_nzZDHhYbI/s72-c/zenburn.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7700475954028247590.post-7094257432097101486</id><published>2008-04-07T02:07:00.001+01:00</published><updated>2008-04-07T02:21:41.211+01:00</updated><title type='text'>And We're Off</title><content type='html'>&lt;div style="text-align: justify;"&gt;I am trying out &lt;a href="http://blokkal.sourceforge.net/" title="http://blokkal.sourceforge.net/"&gt;blokkal&lt;/a&gt; for the first time - I think that's where previous blogging attempts slowed to a stop - not having a quick and simple local client every time I had a post in my head. This blog will be an attempt to share my experiences, good and bad, about my linux distro of choice, &lt;a href="http://en.opensuse.org/Welcome_to_openSUSE.org" title="http://en.opensuse.org/Welcome_to_openSUSE.org"&gt;openSUSE&lt;/a&gt;. I've been using it for at least 9 years after cutting my teeth on &lt;a href="http://www.redhat.com/" title="http://www.redhat.com/"&gt;Redhat&lt;/a&gt; long before it branched into &lt;a href="http://fedoraproject.org/" title="http://fedoraproject.org/"&gt;Fedora&lt;/a&gt;, and a look at several other distros. If I remember correctly it all started with SuSE 6 point something - certainly &lt;a href="http://web.archive.org/web/20000815223830/http://www.suse.com/index.html/" title="http://web.archive.org/web/20000815223830/http://www.suse.com/index.html"&gt;these archives&lt;/a&gt; look vaguely familiar. SuSE has *traditionally* provided a slicker desktop than the competition and that's what attracted me to it in the first place, although I've had plenty of dabbling in &lt;a href="http://www.debian.org/" title="http://www.debian.org/"&gt;Debian&lt;/a&gt; based distros since, mostly work related. Debian (and hence, &lt;a href="http://www.ubuntu.com/" title="http://www.ubuntu.com/"&gt;Ubuntu&lt;/a&gt;) have traditionally had better package management and I think that remains the case, although it will be interesting to see if openSUSE's new &lt;a href="http://en.opensuse.org/Libzypp/Sat_Solver" title="http://en.opensuse.org/Libzypp/Sat_Solver"&gt;Sat Solver&lt;/a&gt; manages to compete. The openSUSE &lt;a href="http://build.opensuse.org/" title="http://build.opensuse.org/"&gt;Build Service&lt;/a&gt; will hopefully help to bridge that gap.&lt;br /&gt;&lt;br /&gt;Anyways, interesting times ahead, with &lt;a href="http://www.blogger.com/kde4" title="kde4"&gt;kde4&lt;/a&gt; out and looking the business, although I am yet to find it useable enough to make the switch permanent - a combination of show-stopping bugs and lack of features in &lt;a href="http://konsole.kde.org/" title="http://konsole.kde.org/"&gt;konsole&lt;/a&gt; scaring me away. I'm a kde type mostly, although I feel very comfortable on the command line and do most of my day to day work there, including use of the redoubtable &lt;a href="http://www.mutt.org/" title="http://www.mutt.org/"&gt;mutt&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I'm afraid I've a bit of tendency towards industrial strength language from time to time. It's only words, &lt;a href="http://www.vidarholen.net/contents/wordcount/" title="http://www.vidarholen.net/contents/wordcount/"&gt;get over it&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7700475954028247590-7094257432097101486?l=usrlocalbin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://usrlocalbin.blogspot.com/feeds/7094257432097101486/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7700475954028247590&amp;postID=7094257432097101486' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7700475954028247590/posts/default/7094257432097101486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7700475954028247590/posts/default/7094257432097101486'/><link rel='alternate' type='text/html' href='http://usrlocalbin.blogspot.com/2008/04/and-we-off.html' title='And We&amp;#39;re Off'/><author><name>cm</name><uri>http://www.blogger.com/profile/02884362823199436058</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>
