<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>./klaus hofeditz :: weblog</title>
	<atom:link href="http://blog.klaushofeditz.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.klaushofeditz.de</link>
	<description></description>
	<lastBuildDate>Mon, 07 May 2012 07:25:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>ad_form vs. template::form</title>
		<link>http://blog.klaushofeditz.de/development/ad_form-vs-templateform/</link>
		<comments>http://blog.klaushofeditz.de/development/ad_form-vs-templateform/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 17:43:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[]po[ Development]]></category>
		<category><![CDATA[]po[ Development - Basics]]></category>

		<guid isPermaLink="false">http://blog.klaushofeditz.de/?p=818</guid>
		<description><![CDATA[Sample definition of ad_form ad_form \ -name task \ -cancel_url $return_url \ -action $action_url \ -actions $actions \ -has_edit 1 \ -mode $form_mode \ -export {next_url user_id return_url} \ -form { task_id:key {task_name:text(text) {label "[_ intranet-timesheet2-tasks.Name]"} {html {size 50}} {help_text $full_name_help}} {task_nr:text(text) {label "[_ intranet-timesheet2-tasks.Short_Name]"} {html {size 30}} {help_text $short_name_help}} {project_id:text(select) {label "[_ intranet-core.Project]"} {options <a href='http://blog.klaushofeditz.de/development/ad_form-vs-templateform/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<h2>Sample definition of ad_form </h2>
<p><code><br />
ad_form \<br />
    -name task \<br />
    -cancel_url $return_url \<br />
    -action $action_url \<br />
    -actions $actions \<br />
    -has_edit 1 \<br />
    -mode $form_mode \<br />
    -export {next_url user_id return_url} \<br />
    -form {<br />
        task_id:key<br />
        {task_name:text(text) {label "[_ intranet-timesheet2-tasks.Name]"} {html {size 50}} {help_text $full_name_help}}<br />
        {task_nr:text(text) {label "[_ intranet-timesheet2-tasks.Short_Name]"} {html {size 30}} {help_text $short_name_help}}<br />
        {project_id:text(select) {label "[_ intranet-core.Project]"} {options $parent_project_options} {help_text $project_help}}<br />
        {material_id:text(select) {label "[_ intranet-timesheet2-tasks.Material]"} {options $material_options} {help_text $material_help}}<br />
        {cost_center_id:text(select),optional {label "[_ intranet-timesheet2-tasks.Cost_Center]"} {options $cost_center_options} {help_text $cost_center_help}}<br />
        {task_type_id:text(hidden) {label "[_ intranet-timesheet2-tasks.Type]"} {options $type_options} }<br />
        {task_status_id:text(im_category_tree) {label "[_ intranet-timesheet2-tasks.Status]"} {custom {category_type "Intranet Project Status"}}}<br />
        {uom_id:text(select) {label "[_ intranet-timesheet2-tasks.UoM]<br />([_ intranet-timesheet2-tasks.Unit_of_Measure])"} {options $uom_options}}<br />
    }</p>
<p></code></p>
<h2>Sample definition of template::form </h2>
<p><code></p>
<p>template::form::create $form_id<br />
template::form::section $form_id ""<br />
template::element::create $form_id project_id -widget "hidden"<br />
template::element::create $form_id supervisor_id -widget "hidden" -optional<br />
template::element::create $form_id workflow_case_id -widget "hidden" -optional<br />
template::element::create $form_id requires_report_p -widget "hidden" -optional -datatype text<br />
template::element::create $form_id workflow_key -widget "hidden" -optional -datatype text<br />
template::element::create $form_id return_url \<br />
    -widget "hidden" \<br />
    -optional \<br />
    -datatype text<br />
template::element::create $form_id project_name \<br />
    -datatype text\<br />
    -label "[_ intranet-core.Project_Name]" \<br />
    -html {size 40} \<br />
    -after_html "[im_gif help "Please enter any suitable name for the project. The name must be unique."]"</p>
<p></code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.klaushofeditz.de/development/ad_form-vs-templateform/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Win7 &#8211; Display Network Errors Tweak</title>
		<link>http://blog.klaushofeditz.de/po-sysadmin/win7-display-network-errors-tweak/</link>
		<comments>http://blog.klaushofeditz.de/po-sysadmin/win7-display-network-errors-tweak/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 15:18:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[]po[ SysAdmin]]></category>

		<guid isPermaLink="false">http://blog.klaushofeditz.de/?p=816</guid>
		<description><![CDATA[If you want to get a quick check of network problems on your computer then you can check the status of packets in error. By default, only the numbers of bytes received and sent are displayed in the Local Area Connection Status window but you can have the number of errors displayed as well. With <a href='http://blog.klaushofeditz.de/po-sysadmin/win7-display-network-errors-tweak/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>If you want to get a quick check of network problems on your computer then you can check the status of packets in error. By default, only the numbers of  bytes received and sent are displayed in the Local Area Connection Status window but you can have the number of errors displayed as well. With this registry tweak you can display an errors counter below the sent and received numbers.<br />
&#8230;</p>
<p><a href="http://www.windows7library.com/blog/tweaks/display-network-errors-tweak/" title="Win7 NW errors">http://www.windows7library.com/blog/tweaks/display-network-errors-tweak/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.klaushofeditz.de/po-sysadmin/win7-display-network-errors-tweak/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>]po[ Javascript / jQuery Cheat Sheet</title>
		<link>http://blog.klaushofeditz.de/development/po-javascript-cheat-sheet/</link>
		<comments>http://blog.klaushofeditz.de/development/po-javascript-cheat-sheet/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 17:17:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[]po[ and AJAX]]></category>
		<category><![CDATA[]po[ Development]]></category>

		<guid isPermaLink="false">http://blog.klaushofeditz.de/?p=806</guid>
		<description><![CDATA[Get form: var oForm = document.getElementById('project-ae'); Browse through elements of a form: for (i = oForm.cost_object_category_id.options.length-1; i >= 0; i--) { oForm.cost_object_category_id.remove(i); } Check existence of element: if (document.getElementById("sideBarTab") != null) { ... } Get element: document.getElementById('slave_content').style.visibility='visible'; Get element attribute: document.getElementById('sidebar').getAttribute('savedHeight') Inserting elements: var node_insert_after=document.getElementById("slave"); var node_to_move=document.getElementById("fullwidth-list"); document.getElementById("monitor_frame").insertBefore(node_to_move, node_insert_after.nextSibling); Get value of a drop down <a href='http://blog.klaushofeditz.de/development/po-javascript-cheat-sheet/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<h2>Get form:</h2>
<pre>var oForm = document.getElementById('project-ae');</pre>
<h2>Browse through elements of a form:</h2>
<pre>
          for (i = oForm.cost_object_category_id.options.length-1; i >= 0; i--) {
                oForm.cost_object_category_id.remove(i);
            }
</pre>
<h2>Check existence of element:</h2>
<pre>
if (document.getElementById("sideBarTab") != null) {
...
}
</pre>
<h2>Get element:</h2>
<pre>document.getElementById('slave_content').style.visibility='visible';</pre>
<h2>Get element attribute:</h2>
<pre>document.getElementById('sidebar').getAttribute('savedHeight')</pre>
<h2>Inserting elements:</h2>
<pre>
var node_insert_after=document.getElementById("slave");
var node_to_move=document.getElementById("fullwidth-list");
document.getElementById("monitor_frame").insertBefore(node_to_move, node_insert_after.nextSibling);
</pre>
<h2>Get value of a drop down in a form:</h2>
<p>var oForm = document.getElementById(&#8216;project-ae&#8217;);<br />
var company_id = oForm.elements["company_id"].options[oForm.elements["company_id"].selectedIndex].value;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.klaushofeditz.de/development/po-javascript-cheat-sheet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2011-12-08: Professionelle Intelligenz &#124; Gunter Dueck auf der x mess</title>
		<link>http://blog.klaushofeditz.de/diary/2011-12-08-professionelle-intelligenz-gunter-dueck-auf-der-x-mess/</link>
		<comments>http://blog.klaushofeditz.de/diary/2011-12-08-professionelle-intelligenz-gunter-dueck-auf-der-x-mess/#comments</comments>
		<pubDate>Thu, 08 Dec 2011 22:19:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Diary]]></category>

		<guid isPermaLink="false">http://blog.klaushofeditz.de/?p=765</guid>
		<description><![CDATA[Tausende von Ingenieuren beschäftigen sich mit dem Problem des Vibrierens im Auto verursacht durch den Verbrennungsmotor. Ein Elektromotor hat dieses Problem praktisch nicht. &#8211; Wie sieht Dein Job in 10 Jahren aus? Professionelle Intelligenz &#124; Gunter Dueck auf der x mess from managementx on Vimeo. The Flinch &#8211; But what if danger is exactly what <a href='http://blog.klaushofeditz.de/diary/2011-12-08-professionelle-intelligenz-gunter-dueck-auf-der-x-mess/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Tausende von Ingenieuren beschäftigen sich mit dem Problem des Vibrierens im Auto verursacht durch den Verbrennungsmotor.<br />
Ein Elektromotor hat dieses Problem praktisch nicht. &#8211; Wie sieht Dein Job in 10 Jahren aus?  </p>
<p><a href="http://vimeo.com/32837984" title="http://vimeo.com/32837984"></a></p>
<p><iframe src="http://player.vimeo.com/video/32837984?byline=0&amp;portrait=0&amp;color=64b378" width="400" height="225" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
<p><a href="http://vimeo.com/32837984">Professionelle Intelligenz | Gunter Dueck auf der x mess</a> from <a href="http://vimeo.com/user6229326">managementx</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>The Flinch &#8211; But what if danger is exactly what you need? </p>
<p>http://www.amazon.com/The-Flinch-ebook/dp/B0062Q7S3S/ref=sr_1_4?s=digital-text&#038;ie=UTF8&#038;qid=1323208767&#038;sr=1-4</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.klaushofeditz.de/diary/2011-12-08-professionelle-intelligenz-gunter-dueck-auf-der-x-mess/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hirarchical queries using tree_sortkey</title>
		<link>http://blog.klaushofeditz.de/development/hirarchical-queries-using-tree_sortkey/</link>
		<comments>http://blog.klaushofeditz.de/development/hirarchical-queries-using-tree_sortkey/#comments</comments>
		<pubDate>Thu, 03 Nov 2011 23:11:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[]po[ Data Modell]]></category>
		<category><![CDATA[]po[ Development]]></category>

		<guid isPermaLink="false">http://blog.klaushofeditz.de/?p=723</guid>
		<description><![CDATA[Get ancestor: select tree_ancestor_key('1000000000000000111010101100110000000000000000000000000100001001', 1); Get level: select tree_level('1000000000000000111010101100110000000000000000000000000100001001'); Get direct parent: select parent.project_id from im_projects parent, im_projects child where child.project_id = :project_id and tree_ancestor_key(child.tree_sortkey, tree_level(child.tree_sortkey)-1) = parent.tree_sortkey Links: Using tree_sortkey for hierarchical queries in Postgres OpenACS Doku: Hierarchical data]]></description>
			<content:encoded><![CDATA[<p>Get ancestor:<br />
<code>select tree_ancestor_key('1000000000000000111010101100110000000000000000000000000100001001', 1);<br />
</code></p>
<p>Get level:<br />
<code>select tree_level('1000000000000000111010101100110000000000000000000000000100001001');</code></p>
<p>Get direct parent:<br />
<code><br />
        select<br />
		parent.project_id<br />
	from<br />
		im_projects parent,<br />
                im_projects child<br />
        where   child.project_id = :project_id and<br />
                tree_ancestor_key(child.tree_sortkey, tree_level(child.tree_sortkey)-1) = parent.tree_sortkey<br />
</code></p>
<p>Links:<br />
<a href="http://www.rubick.com/openacs/tree_sortkey" title="http://www.rubick.com/openacs/tree_sortkey">Using tree_sortkey for hierarchical queries in Postgres</a><br />
<a href="http://openacs.com/doc/current/tutorial-hierarchical.html" title="OpenACS Doku: Hierarchical data">OpenACS Doku: Hierarchical data</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.klaushofeditz.de/development/hirarchical-queries-using-tree_sortkey/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>respawn AOLServer using monit</title>
		<link>http://blog.klaushofeditz.de/po/respawn-aolserver-using-monit/</link>
		<comments>http://blog.klaushofeditz.de/po/respawn-aolserver-using-monit/#comments</comments>
		<pubDate>Tue, 25 Oct 2011 20:56:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[]po[]]></category>
		<category><![CDATA[]po[ SysAdmin]]></category>

		<guid isPermaLink="false">http://blog.klaushofeditz.de/?p=717</guid>
		<description><![CDATA[Prerequisites: Make sure that user who runs nsd has write permissions of folder the PID is written to. Existence of /etc/init.d/aolserver4-projop (see Ubuntu installer script on http://www.project-open.org) a) Install monit b) Adjust /etc/monit/monitrc c) Create /etc/monit/conf.d/aolserver.monitrc check process aolserver4-projop with pidfile /usr/lib/aolserver4/log/nspid.projop start program "/etc/init.d/aolserver4-projop start" stop program "/etc/init.d/aolserver4-projop stop" d) Adjust /etc/default/monit: startup=1 e) <a href='http://blog.klaushofeditz.de/po/respawn-aolserver-using-monit/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Prerequisites: </p>
<ul>
<li>Make sure that user who runs nsd has write permissions of folder the PID is written to. </li>
<li>Existence of /etc/init.d/aolserver4-projop (see Ubuntu installer script on http://www.project-open.org)</li>
</ul>
<p>a) Install monit<br />
b) Adjust /etc/monit/monitrc<br />
c) Create /etc/monit/conf.d/aolserver.monitrc</p>
<pre>
check process aolserver4-projop with pidfile /usr/lib/aolserver4/log/nspid.projop
      start program "/etc/init.d/aolserver4-projop start"
      stop program "/etc/init.d/aolserver4-projop stop"
</pre>
<p>d) Adjust /etc/default/monit:</p>
<pre>startup=1</pre>
<p>e) start</p>
<pre>sudo /etc/init.d/monit start</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.klaushofeditz.de/po/respawn-aolserver-using-monit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installation ]po[ on Ubuntu 11.04</title>
		<link>http://blog.klaushofeditz.de/po/installation-po-on-ubuntu-11-04/</link>
		<comments>http://blog.klaushofeditz.de/po/installation-po-on-ubuntu-11-04/#comments</comments>
		<pubDate>Sun, 23 Oct 2011 23:40:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[]po[]]></category>
		<category><![CDATA[]po[ SysAdmin]]></category>

		<guid isPermaLink="false">http://blog.klaushofeditz.de/?p=712</guid>
		<description><![CDATA[Installation von PostgreSQL 8.2 from source: psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket &#8220;/var/run/postgresql/.s.PGSQL.5432&#8243;? http://askubuntu.com/questions/50621/cannot-connect-to-postgresql-on-port-5432 I would guess that the server is actually listening on the socket /tmp/.s.PGSQL.5432 rather than the /var/run/postgresql/.s.PGSQL.5432 that your client is attempting to connect <a href='http://blog.klaushofeditz.de/po/installation-po-on-ubuntu-11-04/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Installation von PostgreSQL 8.2 from source: </p>
<p>psql: could not connect to server: No such file or directory<br />
        Is the server running locally and accepting<br />
        connections on Unix domain socket &#8220;/var/run/postgresql/.s.PGSQL.5432&#8243;?</p>
<p><a href="http://askubuntu.com/questions/50621/cannot-connect-to-postgresql-on-port-5432" title="http://askubuntu.com/questions/50621/cannot-connect-to-postgresql-on-port-5432">http://askubuntu.com/questions/50621/cannot-connect-to-postgresql-on-port-5432</a></p>
<p>I would guess that the server is actually listening on the socket /tmp/.s.PGSQL.5432 rather than the /var/run/postgresql/.s.PGSQL.5432 that your client is attempting to connect to. This is a typical problem when using hand-compiled or third-party PostgreSQL packages on Debian or Ubuntu, because the source default for the Unix-domain socket directory is /tmp but the Debian packaging changes it to /var/run/postgresql.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.klaushofeditz.de/po/installation-po-on-ubuntu-11-04/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CentOS 6.0 start out with &#8220;minimal install&#8221; VM</title>
		<link>http://blog.klaushofeditz.de/po/centos-6-0-vm-image-configure-internet-access/</link>
		<comments>http://blog.klaushofeditz.de/po/centos-6-0-vm-image-configure-internet-access/#comments</comments>
		<pubDate>Sat, 01 Oct 2011 22:35:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[]po[]]></category>
		<category><![CDATA[]po[ SysAdmin]]></category>

		<guid isPermaLink="false">http://blog.klaushofeditz.de/?p=703</guid>
		<description><![CDATA[Configure internet access (Minimal install VM images) Setting WM Player Set Network Connection of VM to: Bridged In some cases you need to set the keyboard: loadkeys de/es/fr ... If you copied a VM you need to delete: /etc/udev/rules.d/70-persistent-net.rules and reboot: reboot Check if ls /sys/class/net list now eth0 Settings in VM /etc/sysconfig/network NETWORKING=yes HOSTNAME=localhost.localdomain <a href='http://blog.klaushofeditz.de/po/centos-6-0-vm-image-configure-internet-access/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<h1>Configure internet access (Minimal install VM images)</h1>
<h2>Setting WM Player</h2>
<p>Set Network Connection of VM to: Bridged</p>
<p>In some cases you need to set the keyboard: </p>
<pre>
loadkeys de/es/fr ...
</pre>
<p>If you copied a VM you need to delete:  </p>
<pre>
/etc/udev/rules.d/70-persistent-net.rules
</pre>
<p>and reboot:</p>
<pre>
reboot
</pre>
<p>Check if</p>
<pre>
ls /sys/class/net
</pre>
<p>list now eth0 </p>
<h2>Settings in VM</h2>
<pre>
/etc/sysconfig/network
NETWORKING=yes
HOSTNAME=localhost.localdomain
GATEWAY=192.168.1.1

/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
NM_CONTROLLED="yes"
ONBOOT="yes"
BOOTPROTO="static"
IPADDR="192.168.1.39"
NETMASK="255.255.255.0"

/etc/resolv.conf
nameserver 192.168.1.1

Open Port 22:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.klaushofeditz.de/po/centos-6-0-vm-image-configure-internet-access/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Upstart script for AOLServer on CentOS 6.0</title>
		<link>http://blog.klaushofeditz.de/po/autostart-aolserver-on-centos-6-0/</link>
		<comments>http://blog.klaushofeditz.de/po/autostart-aolserver-on-centos-6-0/#comments</comments>
		<pubDate>Sat, 01 Oct 2011 09:27:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[]po[]]></category>
		<category><![CDATA[]po[ SysAdmin]]></category>

		<guid isPermaLink="false">http://blog.klaushofeditz.de/?p=701</guid>
		<description><![CDATA[add /etc/init/aolserver.conf # AOLServer start on started sshd stop on runlevel [016] respawn exec su -c "/usr/local/aolserver451/bin/nsd-postgres -it /web/projop/etc/config.tcl" projop initctl reload-configuration initctl start aolserver]]></description>
			<content:encoded><![CDATA[<p>add /etc/init/aolserver.conf</p>
<pre>
# AOLServer

start on started sshd
stop on runlevel [016]

respawn
exec su -c "/usr/local/aolserver451/bin/nsd-postgres  -it /web/projop/etc/config.tcl" projop
</pre>
<pre>
initctl reload-configuration
initctl start aolserver
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.klaushofeditz.de/po/autostart-aolserver-on-centos-6-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Common pitfalls OpenACS, tcl &amp; pgsql</title>
		<link>http://blog.klaushofeditz.de/development/common-pitfalls-openacs-tcl/</link>
		<comments>http://blog.klaushofeditz.de/development/common-pitfalls-openacs-tcl/#comments</comments>
		<pubDate>Thu, 29 Sep 2011 20:16:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[]po[]]></category>
		<category><![CDATA[]po[ Development]]></category>
		<category><![CDATA[]po[ Development - Basics]]></category>
		<category><![CDATA[]po[ for the rest of us]]></category>

		<guid isPermaLink="false">http://blog.klaushofeditz.de/?p=697</guid>
		<description><![CDATA[tcl: Continue line using backslash 1) Make sure there&#8217;s no backspace after the backslash ! 2) No breaks allowed within function call This won&#8217;t work: [im_do_row [array get bgcolor] $ctr $curr_owner_id \ $owner_name \ $days \ [array get user_days] \ [array get user_absences] \ $holydays \ $today_date \ [array get user_ab_descr] \ $workflow_key \ ] <a href='http://blog.klaushofeditz.de/development/common-pitfalls-openacs-tcl/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<h2>tcl: Continue line using backslash</h2>
<p>1) Make sure there&#8217;s no backspace after the backslash !<br />
2) No breaks allowed within function call </p>
<p>This won&#8217;t work: </p>
<pre code="tcl">
                [im_do_row [array get bgcolor] $ctr $curr_owner_id \
                                $owner_name \
                                $days \
                                [array get user_days] \
                                [array get user_absences] \
                                $holydays \
                                $today_date \
                                [array get user_ab_descr] \
                                $workflow_key \
                           ]
</pre>
<h2>OpenACS: Watch packages</h2>
<ul>
<li>AOLServer restart sets back watches</li>
<li>CVS settings (watch) could lead to additional dirs Base/Baseserv containing a second version of lib files</li>
</ul>
<h2>pgsql</h2>
<pre>
# select project_id from im_projects where parent_id = NULL;
 project_id
------------
(0 rows)

# select project_id from im_projects where parent_id IS NULL;
 project_id
------------
      35116
      35417
(2 rows)
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.klaushofeditz.de/development/common-pitfalls-openacs-tcl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

