<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Johan Känngård</title>
	<atom:link href="http://johankanngard.net/feed" rel="self" type="application/rss+xml" />
	<link>http://johankanngard.net</link>
	<description>Useful tips for developers</description>
	<pubDate>Thu, 04 Sep 2008 10:50:23 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>lotus.com/ldd no more :-(</title>
		<link>http://johankanngard.net/2008/09/04/lotuscomldd-no-more/</link>
		<comments>http://johankanngard.net/2008/09/04/lotuscomldd-no-more/#comments</comments>
		<pubDate>Thu, 04 Sep 2008 10:50:23 +0000</pubDate>
		<dc:creator>Johan Känngård</dc:creator>
		
		<category><![CDATA[Domino/Notes]]></category>

		<category><![CDATA[IBM]]></category>

		<category><![CDATA[Lotus]]></category>

		<guid isPermaLink="false">http://johankanngard.net/?p=298</guid>
		<description><![CDATA[IBM has removed the old redirect for the Lotus Developer Domain, I only get to Lotus Software using that old URL. Now is time to remember this: http://www.ibm.com/developerworks/lotus
]]></description>
			<content:encoded><![CDATA[<p>
IBM has removed the old redirect for the <a href="http://lotus.com/ldd">Lotus Developer Domain</a>, I only get to Lotus Software using that old URL. Now is time to remember this: <a href="http://www.ibm.com/developerworks/lotus">http://www.ibm.com/developerworks/lotus</a></p>
]]></content:encoded>
			<wfw:commentRss>http://johankanngard.net/2008/09/04/lotuscomldd-no-more/feed/</wfw:commentRss>
		</item>
		<item>
		<title>HOWTO Use Lotus Notes, Domino Designer and Domino Administrator 8.01 on Ubuntu 8.04 via Wine 1.0.0</title>
		<link>http://johankanngard.net/2008/09/01/howto-use-lotus-notes-domino-designer-and-domino-administrator-801-on-ubuntu-804-via-wine-100/</link>
		<comments>http://johankanngard.net/2008/09/01/howto-use-lotus-notes-domino-designer-and-domino-administrator-801-on-ubuntu-804-via-wine-100/#comments</comments>
		<pubDate>Mon, 01 Sep 2008 20:09:28 +0000</pubDate>
		<dc:creator>Johan Känngård</dc:creator>
		
		<category><![CDATA[Domino/Notes]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Lotus Notes]]></category>

		<category><![CDATA[Ubuntu]]></category>

		<category><![CDATA[Wine]]></category>

		<guid isPermaLink="false">http://johankanngard.net/?p=294</guid>
		<description><![CDATA[I just followed Julian&#8217;s excellent guide and it worked! Even though the guide was for previous versions of both Notes, Ubuntu and Wine, I did not have to make any additional steps to get it working. All programs works, I haven&#8217;t found anything that is broken (yet), and it&#8217;s great having the Designer &#8220;directly&#8221; in [...]]]></description>
			<content:encoded><![CDATA[<p>I just followed <a href="http://www.nsftools.com/tips/UseNotesWithWine.htm">Julian&#8217;s excellent guide</a> and it worked! Even though the guide was for previous versions of both Notes, Ubuntu and Wine, I did not have to make any additional steps to get it working. All programs works, I haven&#8217;t found anything that is broken (yet), and it&#8217;s great having the Designer &#8220;directly&#8221; in Ubuntu instead of firing up  <a href="http://www.virtualbox.org/">VirtualBox</a>.</p>
<p>Thanks Julian, for your excellent guide!</p>
]]></content:encoded>
			<wfw:commentRss>http://johankanngard.net/2008/09/01/howto-use-lotus-notes-domino-designer-and-domino-administrator-801-on-ubuntu-804-via-wine-100/feed/</wfw:commentRss>
		</item>
		<item>
		<title>MySQL Commands Cheat Sheet</title>
		<link>http://johankanngard.net/2008/07/31/mysql-commands-cheat-sheet/</link>
		<comments>http://johankanngard.net/2008/07/31/mysql-commands-cheat-sheet/#comments</comments>
		<pubDate>Thu, 31 Jul 2008 12:03:48 +0000</pubDate>
		<dc:creator>Johan Känngård</dc:creator>
		
		<category><![CDATA[SQL]]></category>

		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://johankanngard.net/?p=255</guid>
		<description><![CDATA[Another memory-dump. The manual contains more information (that&#8217;s a surprise :-).


mysql> delete from TABLE where id=X
Removes the specified row
mysql> describe TABLE;
Shows the structure of the specified table
mysql> select * from TABLE;
Shows all rows in the specified table :-O
mysql> show procedure status;
Shows stored procedures
mysql> show table status;
Shows tables in current database
mysql> use MYDATABASE;
Changes the database to [...]]]></description>
			<content:encoded><![CDATA[<p>
Another memory-dump. The <a href="http://dev.mysql.com/doc/#manual">manual</a> contains more information (that&#8217;s a surprise :-).
</p>
<dl>
<dt>mysql> delete from TABLE where id=X</dt>
<dd>Removes the specified row</dd>
<dt>mysql> describe TABLE;</dt>
<dd>Shows the structure of the specified table</dd>
<dt>mysql> select * from TABLE;</dt>
<dd>Shows all rows in the specified table :-O</dd>
<dt>mysql> show procedure status;</dt>
<dd>Shows stored procedures</dd>
<dt>mysql> show table status;</dt>
<dd>Shows tables in current database</dd>
<dt>mysql> use MYDATABASE;</dt>
<dd>Changes the database to act on</dd>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://johankanngard.net/2008/07/31/mysql-commands-cheat-sheet/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Bash Variables Cheat Sheet</title>
		<link>http://johankanngard.net/2008/07/31/bash-variables-cheat-sheet/</link>
		<comments>http://johankanngard.net/2008/07/31/bash-variables-cheat-sheet/#comments</comments>
		<pubDate>Thu, 31 Jul 2008 08:49:34 +0000</pubDate>
		<dc:creator>Johan Känngård</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[bash]]></category>

		<category><![CDATA[reference]]></category>

		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://johankanngard.net/?p=248</guid>
		<description><![CDATA[For a complete list, see Bash Reference Manual - Bash Environment Variables. This is just my own memory-dump. To get the value of a variable, you can use:

echo $OLDPWD



OLDPWD
previous current directory
PWD
current directory
LANG
the language used by programs, check with locale -a for available locales. Can be set in .bash_profile with export LANG=&#8221;en_US.utf8&#8243;
LANGUAGE
the language used by programs, [...]]]></description>
			<content:encoded><![CDATA[<p>
For a complete list, see <a href="http://www.gnu.org/software/bash/manual/html_node/Bash-Variables.html#Bash-Variables">Bash Reference Manual - Bash Environment Variables</a>. This is just my own memory-dump. To get the value of a variable, you can use:<br />
<pre><code>
echo $OLDPWD
</code></pre>
</p>
<dl>
<dt>OLDPWD</dt>
<dd>previous current directory</dd>
<dt>PWD</dt>
<dd>current directory</dd>
<dt>LANG</dt>
<dd>the language used by programs, check with locale -a for available locales. Can be set in .bash_profile with export LANG=&#8221;en_US.utf8&#8243;</dd>
<dt>LANGUAGE</dt>
<dd>the language used by programs, check with locale- a for available locales. Can be set in .bash_profile with export LANGUAGE=&#8221;en_US.utf8&#8243;</dd>
<dt>RSYNC_RSH</dt>
<dd>the shell used for rsync, usually /usr/bin/ssh</dd>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://johankanngard.net/2008/07/31/bash-variables-cheat-sheet/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Linux Directories and Files Cheat Sheet</title>
		<link>http://johankanngard.net/2008/07/31/linux-directories-and-files-cheat-sheet/</link>
		<comments>http://johankanngard.net/2008/07/31/linux-directories-and-files-cheat-sheet/#comments</comments>
		<pubDate>Thu, 31 Jul 2008 08:10:30 +0000</pubDate>
		<dc:creator>Johan Känngård</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://johankanngard.net/?p=234</guid>
		<description><![CDATA[Just a memory dump for important files and directories.


~/.bashrc
runs on interactive login
~/.bash_aliases
runs from .bashrc (if uncommented&#8230;)
~/.emacs
Emacs settings
/etc/crontab
file that controls scheduled running of scripts
/etc/cron.d/hourly, daily, weekly, monthly
for running scripts on a scheduled basis
/etc/group
groups in the system
/etc/hosts
hard-coded hosts like in Windows.
/etc/motd
the greetings text when logging into the system
/etc/resolv.conf
DNS hosts
/etc/sudoers
users and groups that can do sudo. Edit via [...]]]></description>
			<content:encoded><![CDATA[<p>
Just a memory dump for important files and directories.
</p>
<dl>
<dt>~/.bashrc</dt>
<dd>runs on interactive login</dd>
<dt>~/.bash_aliases</dt>
<dd>runs from .bashrc (if uncommented&#8230;)</dd>
<dt>~/.emacs</dt>
<dd>Emacs settings</dd>
<dt>/etc/crontab</dt>
<dd>file that controls scheduled running of scripts</dd>
<dt>/etc/cron.d/hourly, daily, weekly, monthly</dt>
<dd>for running scripts on a scheduled basis</dd>
<dt>/etc/group</dt>
<dd>groups in the system</dd>
<dt>/etc/hosts</dt>
<dd>hard-coded hosts like in Windows.</dd>
<dt>/etc/motd</dt>
<dd>the greetings text when logging into the system</dd>
<dt>/etc/resolv.conf</dt>
<dd>DNS hosts</dd>
<dt>/etc/sudoers</dt>
<dd>users and groups that can do sudo. Edit via sudo visudo.</dd>
<dt>/etc/syslog.conf</dt>
<dd>log configuration (cron etc)</dd>
<dt>/etc/init.d/</dt>
<dd>daemon control files. To remove from startup, use sudo /etc/init.d/XYZ stop, sudo update-rc.d -f XYZ remove. To start manually: sudo /etc/init.d/XYZ start</dd>
<dt>/etc/init.d/gdm</dt>
<dd>Gnome Desktop Manager.</dd>
<dt>/etc/rcS</dt>
<dd>file run at system start. Runs the files in /etc/rcX.d depending on run level</dd>
<dt>/etc/rcX.d/</dt>
<dd>files that are run from /etc/rcS depending on run level. See <a href="http://www.debianadmin.com/the-lniux-boot-process-explained.html">The Linux Boot Process Explained</a></dd>
<dt>/var/log/</dt>
<dd>log files</dd>
<dt>/var/run/</dt>
<dd>lock files and run-time information</dd>
<dt>/etc/apt/sources.list</dt>
<dd>the list of URLs for apt-get for upgrading / installing packages</dd>
</dl>
<p>Also see <a href="http://www.pathname.com/fhs/">Filesystem Hierarchy Standard</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://johankanngard.net/2008/07/31/linux-directories-and-files-cheat-sheet/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Linux Commands Cheat Sheet</title>
		<link>http://johankanngard.net/2008/07/31/linux-commands-cheat-sheet/</link>
		<comments>http://johankanngard.net/2008/07/31/linux-commands-cheat-sheet/#comments</comments>
		<pubDate>Thu, 31 Jul 2008 07:48:45 +0000</pubDate>
		<dc:creator>Johan Känngård</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[command]]></category>

		<category><![CDATA[reference]]></category>

		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://johankanngard.net/?p=229</guid>
		<description><![CDATA[There are a lot of these on the net. Why not one more?  I will try to keep this updated. Some commands are shell-specific (I use bash), and some are application specific, like the Apache commands.


a2enmod
enable apache module
a2dismod
disable apache module
a2ensite
enable apache site
a2dissite
disable apache site
apt-get
upgrades Debian/Ubuntu. Do sudo apt-get update first to update info, then [...]]]></description>
			<content:encoded><![CDATA[<p>
There are a lot of these on the net. Why not one more? <img src='http://johankanngard.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> I will try to keep this updated. Some commands are shell-specific (I use bash), and some are application specific, like the Apache commands.
</p>
<dl>
<dt>a2enmod</dt>
<dd>enable apache module</dd>
<dt>a2dismod</dt>
<dd>disable apache module</dd>
<dt>a2ensite</dt>
<dd>enable apache site</dd>
<dt>a2dissite</dt>
<dd>disable apache site</dd>
<dt>apt-get</dt>
<dd>upgrades Debian/Ubuntu. Do sudo apt-get update first to update info, then sudo apt-get upgrade to get new version of installed files. To install a specific package, use sudo apt-get install foo, where foo is the package name.</dd>
<dt>alias</dt>
<dd>creates an alias of a command in the shell</dd>
<dt>awk</dt>
<dd>see gawk</dd>
<dt>cat</dt>
<dd>show / concatenates files</dd>
<dt>cd <directory></dt>
<dd>change current directory</dd>
<dt>cd ~ / cd</dt>
<dd>go to home directory</dd>
<dt>chgrp</dt>
<dd>changes a group of a file</dd>
<dt>chmod</dt>
<dd>changes the access rights of a file</dd>
<dt>chown</dt>
<dd>changes owner of a file</dd>
<dt>clear</dt>
<dd>clears the screen</dd>
<dt>cp</dt>
<dd>copies files</dd>
<dt>cut</dt>
<dd>cuts lines into (like @SubSet in @Forula)</dd>
<dt>date</dt>
<dd>shows the time and date</dd>
<dt>dd</dt>
<dd>convert and copy files</dd>
<dt>df</dt>
<dd>disk / partition info</dd>
<dt>dhclient</dt>
<dd>dhcp-client, use dhclient -r to release, and only dhclient to renew</dd>
<dt>dig</dt>
<dd>DNS entries</dd>
<dt>du</dt>
<dd>show directory / file sizes, use du -sh / to show total size and in &#8220;human-readable&#8221; form.</dd>
<dt>echo</dt>
<dd>prints characters</dd>
<dt>ed</dt>
<dd>text editor</dd>
<dt>emacs</dt>
<dd>text editor</dd>
<dt>exit</dt>
<dd>logs out (also CTRL-D)</dd>
<dt>fdisk</dt>
<dd>disk handling. Can list devices via fdisk -l</dd>
<dt>fg</dt>
<dd>moves a background program to the foreground</dd>
<dt>find</dt>
<dd>find files in the filesystem. Go to the directory where you want to find the file, use &#8220;find -name hosts&#8221; to find files named hosts.</dd>
<dt>ftp</dt>
<dd>file transfer utility (use scp or sftp instead)</dd>
<dt>fsck</dt>
<dd>filesystem check</dd>
<dt>gawk</dt>
<dd>reads records and fields from a file. Or words.</dd>
<dt>gpasswd</dt>
<dd>manages /etc/group</dd>
<dt>grep</dt>
<dd>searches a file for a regular expression pattern. grep -ir &#8216;johan&#8217; .finds all files with the text johan, case insensitive and recursively</dd>
<dt>groupadd</dt>
<dd>adds a group</dd>
<dt>groupdel</dt>
<dd>deletes a group</dd>
<dt>gzip</dt>
<dd>compresses files</dd>
<dt>hcitool</dt>
<dd>configures BlueTooth connections. Use hcitool search to search for discoverable BlueTooth devices.</dd>
<dt>hidd</dt>
<dd>BlueTooth HID daemon. Use sudo hidd &#8211;connect XX:XX:XX:XX:XX:XX to connecto to a HID device</dd>
<dt>ifconfig</dt>
<dd>network configuration</dd>
<dt>info</dt>
<dd>show textinfo files</dd>
<dt>jobs</dt>
<dd>lists active jobs</dd>
<dt>kill</dt>
<dd>kills a process, use kill %jobno to kill a job. Some jobs may not respond to normal kill, you must use kill -KILL %jobno</dd>
<dt>less</dt>
<dd>show contents of files (backward / forward)</dd>
<dt>ln</dt>
<dd>creates a link between files</dd>
<dt>locate</dt>
<dd>find files in index</dd>
<dt>logout</dt>
<dd>logs out (also CTRL-D) or exit</dd>
<dt>ls</dt>
<dd>list files / directory</dd>
<dt>lshal</dt>
<dd>list HAL devices</dd>
<dt>lspci</dt>
<dd>list PCI devices</dd>
<dt>lsusb</dt>
<dd>list USB devices</dd>
<dt>mail</dt>
<dd>starts the mail program</dd>
<dt>man</dt>
<dd>shows manual page for a command</dd>
<dt>mkdir</dt>
<dd>creates a directory</dd>
<dt>mke2fs</dt>
<dd>formats drives</dd>
<dt>mkswap</dt>
<dd>sets up a swap partition</dd>
<dt>more</dt>
<dd>show contents of files (only forward)</dd>
<dt>mount</dt>
<dd>mounts a filesystem</dd>
<dt>mv</dt>
<dd>move or rename</dd>
<dt>nano</dt>
<dd>text editor</dd>
<dt>netstat</dt>
<dd>shows network connections</dd>
<dt>nice</dt>
<dd>handles process priority</dd>
<dt>ping</dt>
<dd>pings a host</dd>
<dt>procinfo</dt>
<dd>shows memory usage</dd>
<dt>ps</dt>
<dd>process status</dd>
<dt>pwd</dt>
<dd>print working directory</dd>
<dt>rm</dt>
<dd>removes a file</dd>
<dt>rmdir</dt>
<dd>removes a directory</dd>
<dt>passwd</dt>
<dd>sets log in passwd</dd>
<dt>route</dt>
<dd>set the ip routes</dd>
<dt>run-parts</dt>
<dd>runs all commands in a directory</dd>
<dt>scp</dt>
<dd>secure copy via ssh. Use &#8221; and \ to escape filenames with spaces, like this: &#8220;HOWTO\ Create\ SSH\ Keys.txt&#8221;</dd>
<dt>sftp</dt>
<dd>secure file transfer (use scp if possible instead)</dd>
<dt>sed</dt>
<dd>stream editor, replaces strings in streams. Example cat test.txt | sed s/testing/helloworld/, replaces testing with helloworld in text.txt to stdout.</dd>
<dt>sensors</dt>
<dd>to read temperatures on motherboard, cpu etc.</dd>
<dt>shutdown</dt>
<dd>in SU mode, shutdowns the system, sudo shutdown -r now restarts the system.</dd>
<dt>sleep</dt>
<dd>sleeps the specified amount of time</dd>
<dt>sort</dt>
<dd>sorts the contents of a file</dd>
<dt>ssh</dt>
<dd>secure shell, use it like this: ssh username@host</dd>
<dt>su</dt>
<dd>goes to &#8220;super user mode&#8221; = root. In Ubuntu you have to set a root password first.</dd>
<dt>sudo</dt>
<dd>goes to &#8220;super user mode&#8221; on one command</dd>
<dt>swapon</dt>
<dd>activates a swap area</dd>
<dt>tar</dt>
<dd>binary to ascii encoder</dd>
<dt>telnet</dt>
<dd>telnet session, unsecure, use ssh instead.</dd>
<dt>top</dt>
<dd>monitors processes</dd>
<dt>touch</dt>
<dd>creates a new empty file or changes the date of an existing file</dd>
<dt>traceroute</dt>
<dd>traces ip hosts</dd>
<dt>tree</dt>
<dd>shows a tree of the filesystem</dd>
<dt>umount</dt>
<dd>umounts a filesystem</dd>
<dt>unalias</dt>
<dd>removes an alias</dd>
<dt>uname</dt>
<dd>shows information about the current system</dd>
<dt>unzip</dt>
<dd>decompresses ZIP files</dd>
<dt>update-rc.d</dt>
<dd>adds something to startup (Debian)</dd>
<dt>uptime</dt>
<dd>shows the uptime for the server</dd>
<dt>useradd</dt>
<dd>add a user</dd>
<dt>userdel</dt>
<dd>remove a user</dd>
<dt>usermod</dt>
<dd>modify a user</dd>
<dt>users</dt>
<dd>lists the users currently logged into the computer</dd>
<dt>vi</dt>
<dd>text editor</dd>
<dt>vmstat</dt>
<dd>shows memory usage</dd>
<dt>w</dt>
<dd>shows who are logged on and what they are doing</dd>
<dt>wait</dt>
<dd>waits for a job to finish</dd>
<dt>watch</dt>
<dd>runs a command every 2 seconds until CTRL+C</dd>
<dt>wc</dt>
<dd>word count. Also count lines</dd>
<dt>whatis</dt>
<dd>short explanation of command</dd>
<dt>whereis</dt>
<dd>shows where the specified command is and its related files</dd>
<dt>which</dt>
<dd>shows the path to the specified command</dd>
<dt>who</dt>
<dd>shows who are logged on</dd>
<dt>whoami</dt>
<dd>shows what user I am</dd>
<dt>write</dt>
<dd>sends a message to another user</dd>
<dt>xviddetect</dt>
<dd>setup video card for X</dd>
<dt>Xconfigurator</dt>
<dd>setup for X</dd>
</dl>
<p>Also see the good man-page-like command list at <a href="http://www.oreillynet.com/linux/cmd/">Oreillynet</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://johankanngard.net/2008/07/31/linux-commands-cheat-sheet/feed/</wfw:commentRss>
		</item>
		<item>
		<title>HOWTO: Install Shoutcast 1.9.8 on Ubuntu 8.0.4</title>
		<link>http://johankanngard.net/2008/07/22/howto-install-shoutcast-on-ubuntu-804/</link>
		<comments>http://johankanngard.net/2008/07/22/howto-install-shoutcast-on-ubuntu-804/#comments</comments>
		<pubDate>Tue, 22 Jul 2008 13:31:21 +0000</pubDate>
		<dc:creator>Johan Känngård</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Music]]></category>

		<category><![CDATA[Shoutcast]]></category>

		<category><![CDATA[Ubuntu]]></category>

		<category><![CDATA[Winamp]]></category>

		<guid isPermaLink="false">http://johankanngard.net/?p=218</guid>
		<description><![CDATA[If you want to stream your own radio station, Shoutcast is an easy solution. This little HOWTO focus only on the server part, and not on the actual audio/feeding client part. I recommend reading ShoutCast Streaming for beginners and Streaming radio with ShoutCast and WinAmp to get the hang of the audio part.

Install
Download the tarball [...]]]></description>
			<content:encoded><![CDATA[<p>
If you want to stream your own radio station, <a href="http://www.shoutcast.com">Shoutcast</a> is an easy solution. This little HOWTO focus only on the server part, and not on the actual audio/feeding client part. I recommend reading <a href="http://www.drs2006.com/manuals/faq/serverfaq2.html">ShoutCast Streaming for beginners</a> and <a href="http://www.andymoore.info/streaming-radio-with-shoutcast-and-winamp/">Streaming radio with ShoutCast and WinAmp</a> to get the hang of the audio part.
</p>
<h2>Install</h2>
<p>Download the tarball from <a href="http://www.shoutcast.com/download/serve.phtml">shoutcast.com</a>.</p>
<p><pre><code>
$ tar -xvf sc_serv_1.9.8_Linux.tar.gz
$ sudo cp sc_serv_1.9.8_Linux/sc_serv /usr/sbin
$ sudo mkdir /etc/shoutcast
$ sudo cp sc_serv.conf /etc/shoutcast
</code></pre></p>
<h2>Automatic start</h2>
<p>This will make shoutcast start when the server starts. Download the <a href="http://johankanngard.net/wp-content/uploads/2008/07/shoutcast">initscript</a> (which I have modified to work in Ubuntu 8.04, source script <a href="http://enki.cthuugle.com/archives/000015.php" class="broken_link">here</a>).</p>
<p><pre><code>
$ sudo cp shoutcast /etc/init.d/shoutcast
$ sudo update-rc.d /etc/init.d/shoutcast defaults
</code></pre></p>
<h2>Check settings</h2>
<p>
The default sc_serv.conf says logging should go to the current directory. I changed the lines:<br />
<pre><code>
LogFile=sc_serv.log
...
W3CLog=sc_w3c.log
</code></pre><br />
into:<br />
<pre><code>
LogFile=/var/log/sc_serv.log
...
W3CLog=/var/log/sc_w3c.log
</code></pre><br />
Also, make sure you set a password on the line saying:<br />
<pre><code>
Password=changeme
</code></pre>
</p>
<h2>Firewall</h2>
<p>
If you have a locally installed firewall, you have to open up two ports. First the port mentioned in sc_serv.conf on the line saying:<br />
<pre><code>
PortBase=8000
</code></pre><br />
The second is the PortBase + 1, i.e. in the default example above it is 8001. The 8001 port is used to receive data from Winamp or other audio streaming feeder and the 8000 port is used to send streaming audio to listening clients. Make sure both ports are open for TCP and UDP. And don&#8217;t forget any hardware firewalls, they have to be opened too.
</p>
<h2>Restart</h2>
<p>
Restart the server or do:<br />
<pre><code>
$ sudo /etc/init.d/shoutcast start
</code></pre><br />
and try opening localhost:8000 in your browser and you should see the (in-)famous Shoutcast page.</p>
]]></content:encoded>
			<wfw:commentRss>http://johankanngard.net/2008/07/22/howto-install-shoutcast-on-ubuntu-804/feed/</wfw:commentRss>
		</item>
		<item>
		<title>HOWTO: Install Lotus Domino 7.0.2 on Ubuntu 8.0.4</title>
		<link>http://johankanngard.net/2008/07/16/howto-install-lotus-domino-702-on-ubuntu-804/</link>
		<comments>http://johankanngard.net/2008/07/16/howto-install-lotus-domino-702-on-ubuntu-804/#comments</comments>
		<pubDate>Wed, 16 Jul 2008 09:05:23 +0000</pubDate>
		<dc:creator>Johan Känngård</dc:creator>
		
		<category><![CDATA[Domino/Notes]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Domino]]></category>

		<category><![CDATA[howto]]></category>

		<category><![CDATA[Lotus]]></category>

		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://johankanngard.net/?p=196</guid>
		<description><![CDATA[This minimalistic guide shows how to install Domino 7.0.2 on Ubuntu 8.0.4 server or workstation. I did this on Ubuntu 7, but did not write everything down, which meant learning/searching for the information once more. Please let me know if you have better ways of doing this!

Create a domino user and group

$ sudo useradd -m [...]]]></description>
			<content:encoded><![CDATA[<p>
This minimalistic guide shows how to install Domino 7.0.2 on Ubuntu 8.0.4 server or workstation. I did this on Ubuntu 7, but did not write everything down, which meant learning/searching for the information once more. Please let me know if you have better ways of doing this!
</p>
<p><h2>Create a domino user and group</h2>
<p><pre><code>
$ sudo useradd -m domino
$ sudo groupadd domino
$ sudo passwd domino
</code></pre></p>
<h2>Add required libraries</h2>
</p>
<p>
Domino uses some libraries that is not installed by the standard Ubuntu installation.
</p>
<p><pre><code>
$ sudo apt-get install libstdc++5
$ sudo apt-get install libxmu6
$ sudo apt-get install libxp6
$ sudo apt-get install libxp-java
$ sudo apt-get install libxtst6
</code></pre></p>
<h2>Install</h2>
<p>
Unpack the installation file (my is named S7.0.2.tar) and run the linux/domino/install script as root. Use default settings (except user, enter domino), use &#8220;Manual setup&#8221;.
</p>
<p><pre><code>
$ tar -xvf S7.0.2.tar
$ cd S7.0.2/linux/domino
$ sudo install
</code></pre></p>
<h2>Change ownerships on files</h2>
<p>
Since you installed as root, the files is owned by root. I guess if install was run as the domino user, this step would not be required.
</p>
<p><pre><code>
$ sudo chown -R domino /local/notesdata
$ sudo chgrp -R domino /local/notesdata
$ sudo chown -R domino /opt/ibm
$ sudo chgrp -R domino /opt/ibm
</code></pre></p>
<h2>Firewall</h2>
<p>
Stop your local firewall or open 1352 in the local firewall. If you are using shorewall, you can do your own Notes macro. Change the port from 80 to 1352 in the macro.Notes file.
</p>
<p><pre><code>
$ sudo cp /usr/share/shorewall/macro.HTTP /usr/share/shorewall/macro.Notes
$ sudo gedit /usr/share/shorewall/macro.Notes
</code></pre></p>
<p>
Add the following (depending on setup&#8230;) to /etc/shorewall/rules:
</p>
<p><pre><code>
Notes/ACCEPT&nbsp;&nbsp;net&nbsp;&nbsp;&nbsp;&nbsp;$FW
</code></pre></p>
<h2>Conflicting services</h2>
<p>Stop any mail, web, ldap services, so that Domino does not conflict on ports. Remember to disable those you don&#8217;t need or disable the Domino services that you don&#8217;t need.<br />
<pre><code>
$ sudo /etc/init.d/postfix stop
$ sudo /etc/init.d/courier-imap stop
$ sudo /etc/init.d/courier-imap-ssl stop
</code></pre></p>
<h2>Relink sh</h2>
<p>
The server script uses /bin/sh, relink sh to bash that normally links to /bin/dash.
</p>
<p><pre><code>
$ sudo rm /bin/sh
$ sudo ln -s /bin/bash /bin/sh
</code></pre></p>
<h2>nsd.sh</h2>
<p>I got many &#8220;Command not found&#8221; errors when starting the server first time. After some research, I found that the script requires gawk in sd.sh:<br />
<pre><code>
$ sudo apt-get install gawk
</code></pre></p>
<h2>Start the server setup listener</h2>
<p><pre><code>
$ su notes
$ DISPLAY=:0.0
$ export DISPLAY
$ cd /local/notesdata
$ /opt/ibm/lotus/bin/server -listen
</code></pre></p>
<p>
If you want to add a server with existing IDs, put the certifier ID, the server ID and the admin ID in the notesdata directory on the server. Run the Remote Server Setup utility on a client. Usually in Start\Lotus Applications\Remote Server Setup. Configure as a normal setup.
</p>
<h2>Server startup script</h2>
<p>
To be able to start Domino on startup, restart it and shutdown when system restarts, you can <a href="http://johankanngard.net/wp-content/uploads/2008/07/domino">download domino init.d-script</a> and put in /etc/init.d. Restart the server to see if it works.
</p>
<p><pre><code>
$ cd /etc/init.d
$ sudo wget http://johankanngard.net/wp-content/uploads/2008/07/domino
$ sudo chmod +x domino
$ sudo chown domino domino
$ sudo chgrp domino domino
$ sudo update-rc.d domino defaults
$ sudo shutdown -r now
</code></pre></p>
<h2>Test</h2>
<p>
Use a Notes client and test that the server is up and running. To see if the server is running on the server, you use telnet.
</p>
<p><pre><code>
$ ps a | grep server
4505 pts/0&nbsp;&nbsp;&nbsp;&nbsp;Ss+&nbsp;&nbsp;&nbsp;&nbsp;0:00 su - domino -c /opt/ibm/lotus/bin/server
</code></pre></p>
<p>
You can also try connecting to the server locally with telnet using:
</p>
<p><pre><code>
$ telnet localhost 1352
Trying 127.0.0.1...
Connected to localhost.
Escape character is \\\\\\\\\\\\\\\&#039;^]\\\\\\\\\\\\\\\&#039;.
</code></pre></p>
<h2>Some links of interest</h2>
<ul>
<li><a href="http://www.nashcom.de/nshweb/pages/startscript.htm">Domino on Unix/Linux Start Script</a></li>
<li><a href="http://www.windelen.be/windelen/wwwindelen.nsf/(All)/AA5357E00F220729C125704A0040CBB8">Migrate Domino to Linux</a></li>
<li><a href="http://www.dominopower.com/issues/issue200010/linux1000001.html">Installing Lotus Domino on Linux</a></li>
</ul>
<p><ins datetime="2008-07-19T12:23:42+00:00"><br />
Updated the startup script since the stop argument wasn&#8217;t working.<br />
</ins></p>
]]></content:encoded>
			<wfw:commentRss>http://johankanngard.net/2008/07/16/howto-install-lotus-domino-702-on-ubuntu-804/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Full and incremental dump of a Subversion repository from a Windows BAT file</title>
		<link>http://johankanngard.net/2008/05/23/full-dump-of-a-subversion-repository-from-a-windows-bat-file/</link>
		<comments>http://johankanngard.net/2008/05/23/full-dump-of-a-subversion-repository-from-a-windows-bat-file/#comments</comments>
		<pubDate>Fri, 23 May 2008 13:47:43 +0000</pubDate>
		<dc:creator>Johan Känngård</dc:creator>
		
		<category><![CDATA[Programming]]></category>

		<category><![CDATA[backup]]></category>

		<category><![CDATA[Subversion]]></category>

		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://johankanngard.net/2008/05/23/full-dump-of-a-subversion-repository-from-a-windows-bat-file/</guid>
		<description><![CDATA[The first is something you should do weekly on your Subversion repository - a full dump. Put the following in a BAT or CMD file on a Windows box, and run it scheduled.

@echo off
REM Creates a full dump of the repository, should be run weekly

for /f \&#34;tokens=1-4 delims=- \&#34; %%a in (\&#039;date /T\&#039;) do set [...]]]></description>
			<content:encoded><![CDATA[<p>The first is something you should do weekly on your <a href="http://subversion.tigris.org">Subversion</a> repository - a full dump. Put the following in a BAT or CMD file on a Windows box, and run it scheduled.</p>
<p><pre><code>
@echo off
REM Creates a full dump of the repository, should be run weekly

for /f \&quot;tokens=1-4 delims=- \&quot; %%a in (\&#039;date /T\&#039;) do set year=%%a
for /f \&quot;tokens=1-4 delims=- \&quot; %%a in (\&#039;date /T\&#039;) do set month=%%b
for /f \&quot;tokens=1-4 delims=- \&quot; %%a in (\&#039;date /T\&#039;) do set day=%%c
for /f \&quot;tokens=1-2 delims=: \&quot; %%a in (\&#039;time /T\&#039;) do set hour=%%a
for /f \&quot;tokens=1-2 delims=: \&quot; %%a in (\&#039;time /T\&#039;) do set minute=%%b
set TODAY=%year%%month%%day%
set NOW=%hour%%minute%

for /F \&quot;tokens=1 \&quot; %%i IN (\&#039;svnlook youngest c:\\repository\&#039;) do call set YOUNGEST=%%i
echo %YOUNGEST% &gt; c:\\backup\\repository\\latestRev.dat
svnadmin dump c:\\repository &gt; c:\\backup\\repository\\svndump_full_rev%YOUNGEST%.%TODAY%%NOW%
</code></pre><br />
The above example makes a dump to c:\backup\repository of your repository at c:\repository named with the most recent revision and todays date and time.<br />
The example below creates incremental dumps using the latestRev.dat file to store the latest revision that was dumped.<br />
<pre><code>
&nbsp;&nbsp;@echo off
&nbsp;&nbsp;REM Creates a partial dump with all revisions since last full dump, should be run daily

&nbsp;&nbsp;for /f \&quot;tokens=1-4 delims=- \&quot; %%a in (\&#039;date /T\&#039;) do set year=%%a
&nbsp;&nbsp;for /f \&quot;tokens=1-4 delims=- \&quot; %%a in (\&#039;date /T\&#039;) do set month=%%b
&nbsp;&nbsp;for /f \&quot;tokens=1-4 delims=- \&quot; %%a in (\&#039;date /T\&#039;) do set day=%%c
&nbsp;&nbsp;for /f \&quot;tokens=1-2 delims=: \&quot; %%a in (\&#039;time /T\&#039;) do set hour=%%a
&nbsp;&nbsp;for /f \&quot;tokens=1-2 delims=: \&quot; %%a in (\&#039;time /T\&#039;) do set minute=%%b
&nbsp;&nbsp;set TODAY=%year%%month%%day%
&nbsp;&nbsp;set NOW=%hour%%minute%

&nbsp;&nbsp;for /F \&quot;tokens=1 \&quot; %%i in (\&#039;svnlook youngest c:\\repository\&#039;) do call set YOUNGEST=%%i
&nbsp;&nbsp;set PREVIOUS=0
&nbsp;&nbsp;if not exist c:\\backup\\repository\\latestRev.dat goto nolatestrev

&nbsp;&nbsp;for /F \&quot;tokens=1 \&quot; %%i in (c:\\backup\\repository\\latestRev.dat) do call set PREVIOUS=%%i

:nolatestrev:
&nbsp;&nbsp;if %YOUNGEST% == %PREVIOUS% goto noupdate

&nbsp;&nbsp;echo %YOUNGEST% &gt; c:\\backup\\repository\\latestRev.dat

&nbsp;&nbsp;svnadmin dump -r %PREVIOUS%:%YOUNGEST% c:\\repository &gt; c:\\backup\\repository\\svndump_incremental_rev%PREVIOUS%to%YOUNGEST%.%TODAY%%NOW%
&nbsp;&nbsp;goto finally

:noupdate
&nbsp;&nbsp;echo No dump needed
:finally
</code></pre><br />
I&#8217;m no Windows batch file pro, but I got this working anyway with some help from <a href="http://www.google.com">Google</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://johankanngard.net/2008/05/23/full-dump-of-a-subversion-repository-from-a-windows-bat-file/feed/</wfw:commentRss>
		</item>
		<item>
		<title>links for 2008-03-13</title>
		<link>http://johankanngard.net/2008/03/13/links-for-2008-03-13/</link>
		<comments>http://johankanngard.net/2008/03/13/links-for-2008-03-13/#comments</comments>
		<pubDate>Thu, 13 Mar 2008 17:21:13 +0000</pubDate>
		<dc:creator>Johan Känngård</dc:creator>
		
		<category><![CDATA[Fun]]></category>

		<guid isPermaLink="false">http://johankanngard.net/2008/03/13/links-for-2008-03-13/</guid>
		<description><![CDATA[
celemony
(tags: audio music recording midi sample arrange software)


]]></description>
			<content:encoded><![CDATA[<ul class="delicious">
<li>
<div class="delicious-link"><a href="http://www.celemony.com/cms/">celemony</a></div>
<div class="delicious-tags">(tags: <a href="http://del.icio.us/kanngard/audio">audio</a> <a href="http://del.icio.us/kanngard/music">music</a> <a href="http://del.icio.us/kanngard/recording">recording</a> <a href="http://del.icio.us/kanngard/midi">midi</a> <a href="http://del.icio.us/kanngard/sample">sample</a> <a href="http://del.icio.us/kanngard/arrange">arrange</a> <a href="http://del.icio.us/kanngard/software">software</a>)</div>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://johankanngard.net/2008/03/13/links-for-2008-03-13/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
