<?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>Groschengedanken zu Software &#187; Symmetrie</title>
	<atom:link href="http://aysx.de/eingroschen/?feed=rss2&#038;tag=symmetrie" rel="self" type="application/rss+xml" />
	<link>http://aysx.de/eingroschen</link>
	<description>... und vielleicht auch dem ganzen Rest</description>
	<lastBuildDate>Tue, 18 Jun 2019 17:59:37 +0000</lastBuildDate>
	<language>de-DE</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.2.38</generator>
	<item>
		<title>Tabellen in Lotus Notes</title>
		<link>http://aysx.de/eingroschen/?p=213</link>
		<comments>http://aysx.de/eingroschen/?p=213#comments</comments>
		<pubDate>Wed, 20 Nov 2013 17:59:43 +0000</pubDate>
		<dc:creator><![CDATA[matthias]]></dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[asymmetrie]]></category>
		<category><![CDATA[Lotus Notes]]></category>
		<category><![CDATA[Symmetrie]]></category>

		<guid isPermaLink="false">http://aysx.de/eingroschen/?p=213</guid>
		<description><![CDATA[IBM erklärt, wie man eine Tabelle mit komprimierbaren Abschnitten in Lotus Notes erstellen kann. Wer die Beschreibung liest und die Grafik mit den Pastell-Tönen studiert, merkt, dass nichts zur Bedienung so einer Tabelle geschrieben steht. Es geht so: Klicke auf &#8230; <a href="http://aysx.de/eingroschen/?p=213">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>IBM erklärt, wie man eine <a title="Tabelle mit komprimierbaren Abschnitten erstellen" href="http://publib.boulder.ibm.com/infocenter/domhelp/v8r0/topic/com.ibm.notes85.help.doc/doc_create_collapsible_table_t.html" target="_blank">Tabelle mit komprimierbaren Abschnitten in Lotus Notes</a> erstellen kann.</p>
<p>Wer die Beschreibung liest und die Grafik mit den Pastell-Tönen studiert, merkt, dass nichts zur Bedienung so einer Tabelle geschrieben steht. Es geht so: Klicke auf das Maximieren-Symbol in einer Zeile, dann wird der zugehörende Abschnitt aufgeklappt. Das ist alles. Das ist alles?!? Wie klappe ich so einen Abschnitt wieder zu? Indem ich auf den Maximieren-Knopf eines anderen Abschnitts klicke. Das geht klar, solange die Abschnitte so klein sind wie auf der IBM-Seite. Im echten Leben sind die Abschnitte größer, also ist auch der Abstand der Maximieren-Symbole größer, und das ist nicht bequem zu bedienen. Grundübel: Mangel an Symmetrie, nur &#8220;auf&#8221;, kein &#8220;zu&#8221;. Einen Architekten, der eine derartige Tür einbaut, schickt man zum Teufel.</p>
<p>Zum Glück kann man <a title="Tabelle mit Registern erstellen" href="http://publib.boulder.ibm.com/infocenter/domhelp/v8r0/index.jsp?topic=%2Fcom.ibm.notes85.help.doc%2Fdoc_create_tabbed_table_t.html" target="_blank">eine Tabelle mit Registern erstellen</a>. Ich finde, das ist ein mächtig cooles Feature von Notes. Es sorgt für Ordnung in der Benutzeroberfläche und es ist bequem zu bedienen.</p>
]]></content:encoded>
			<wfw:commentRss>http://aysx.de/eingroschen/?feed=rss2&#038;p=213</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQuirreL &#8211; ein sql-Client</title>
		<link>http://aysx.de/eingroschen/?p=206</link>
		<comments>http://aysx.de/eingroschen/?p=206#comments</comments>
		<pubDate>Wed, 20 Nov 2013 17:59:25 +0000</pubDate>
		<dc:creator><![CDATA[matthias]]></dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[asymmetrie]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[squirrel]]></category>
		<category><![CDATA[Symmetrie]]></category>

		<guid isPermaLink="false">http://aysx.de/eingroschen/?p=206</guid>
		<description><![CDATA[Ich nutze seit Jahren SQuirreL als SQL-Client. Nicht besonders hübsch, aber funktioniert im Alltag tadellos. Und weil Funktion bei Software wichtiger ist als Style, arbeite ich gerne damit. Die Spitze des Non-Styles bilden die innig geliebten Unix-Komandos, denn man kann &#8230; <a href="http://aysx.de/eingroschen/?p=206">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Ich nutze seit Jahren <a title="squirrel Homepage" href="http://squirrelsql.org/" target="_blank">SQuirreL</a> als SQL-Client. Nicht besonders hübsch, aber funktioniert im Alltag tadellos. Und weil Funktion bei Software wichtiger ist als Style, arbeite ich gerne damit. Die Spitze des Non-Styles bilden die innig geliebten Unix-Komandos, denn man kann sie nutzen, ohne sie zu sehen. Gleich danach kommt &#8220;vim&#8221; &#8211; optisch _sehr_ sparsam. Und XPoint. Erinnert sich jemand an CrossPoint von Peter Mandrella? &#8230; Neulich bin ich in SQuirreL auf ein Feature gestoßen, das den Gebrauchswert dieser Anwendung für mich steigert: Bookmarks. Dahinter verbirgt sich die Möglichkeit, wiederkehrende Abfragen so abzulegen, dass sie mit wenigen Tastendrücken erreichbar sind. Ich bin Tastatur-Nutzer und deshalb liebe ich dieses Feature.</p>
<p>Beispiel</p>
<p>&#8220;select * from adresse&#8221; im Editor-Fenster markieren, dann Menü &#8220;Session &#8211; Bookmark &#8211; Add&#8221;, Name sei &#8220;adr*&#8221;, bei Beschreibung gebe ich ein &#8220;Alle Adressen&#8221;. Dann kann ich im Editor-Fenster Strg-j drücken und bekomme die Liste aller Bookmarks präsentiert. Mit jedem Tastendruck reduziert sich die Anzahl der Elemente in der Auswahl. Wenn ich &#8220;a&#8221; und &#8220;d&#8221; eingetippt habe, sehe ich nur noch &#8220;adr*&#8221; und kann auf &#8220;Return&#8221; hämmern, um den Befehl in den Editor einzufügen und Strg-Return, um den Befehl auszuführen. Sehr bequem!<br />
Für &#8220;select * from adresse&#8221; wird man kein Bookmark anlegen, aber für das <a title="Weihnachtsgeschäft" href="http://aysx.de/eingroschen/?p=186">WeihnachtsgeschäftSQL</a> schon.</p>
<p>Asymmetrie</p>
<p>Ich reite nicht gerne auf Dingen herum. Einiges ist eben omnipräsent ;) Das Bookmark-Plugin von SQuirreL weist eine Asymmetrie auf: Man kann Bookmarks nicht auf dem Weg löschen, auf dem man sie erstellt hat. Aber man ist dem nicht ausgeliegert: um ein Bookmark zu bearbeiten gehe ins Menü &#8220;File &#8211; Global Preferences&#8221;, dort gibt es einen Reiter &#8220;Bookmark&#8221; und darin entsprechende Buttons für das Erstellen, Bearbeiten und Löschen.</p>
<p>Alternative: Das Plugin speichert seine Einstellungen in ~/.squirrel-sql/plugins/sqlbookmark/bookmarks.xml. Darin enthalten sind <code>&lt;Bean&gt;</code>-Tags. Finde das passende Tag und editiere oder lösche es. Oder füge ein Tag hinzu, das neue Bookmark wird nach dem Neustart von SQuirreL zur Verfügung stehen.</p>
<p>Schmankerl: Parameter</p>
<p>Ein Bookmark ist erstmal nur ein kurzer Weg über die Tastatur zum Befehl. Im Alltag kommt es oft vor, dass ein Befehl einen Parameter braucht, um zum Ergebnis zu kommen.Beispiel: In &#8220;select * from adresse where id = 42&#8243; ist &#8220;42&#8221; der Wert des Parameters. Und oft kommt mehr als ein Parameter vor. Beispiel:<br />
<code><br />
select * from adresse where Name = 'Kopp' and Vorname='Matthias'<br />
</code><br />
Die Werte unterscheiden sich natürlich bei jeder Abfrage, und es ist ziemlich nervig, immer wieder durch den SQL-Text zu laufen und die Werte zu verändern. Bookmarks in SQuirreL können Dir diese Lauferei abnehmen. Erstelle das Bookmark in der Form<br />
<code><br />
select * from adresse where Name = '${Name-Eingabe}' and Vorname='${Vorname-Eingabe}'<br />
</code><br />
Dann fragt SQuirreL die beiden Werte ab, wenn Du das Bookmark aufrufst, und setzt die beiden Werte ein, wenn es den Text in den Editor gibt. Wenn derselbe Variablenname mehrfach vorkommt, wird er nur einmal abgefragt und bei jedem Vorkommen passend ersetzt. </p>
<p>Wunderbar. Danke, SQuirreL.</p>
]]></content:encoded>
			<wfw:commentRss>http://aysx.de/eingroschen/?feed=rss2&#038;p=206</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Besser nicht AppendItemValue</title>
		<link>http://aysx.de/eingroschen/?p=170</link>
		<comments>http://aysx.de/eingroschen/?p=170#comments</comments>
		<pubDate>Tue, 19 Nov 2013 05:01:43 +0000</pubDate>
		<dc:creator><![CDATA[matthias]]></dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[asymmetrie]]></category>
		<category><![CDATA[Lotus Notes]]></category>
		<category><![CDATA[Symmetrie]]></category>

		<guid isPermaLink="false">http://aysx.de/eingroschen/?p=170</guid>
		<description><![CDATA[In der Klasse NotesDocument in Lotus Notes 8 gibt es eine Methode AppendItemValue (itemName$, value). Zitat aus der API-Doku: If the document already has an item called itemName$, AppendItemValue does not replace it. Instead, it creates another item with the &#8230; <a href="http://aysx.de/eingroschen/?p=170">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>In der Klasse NotesDocument in Lotus Notes 8 gibt es eine Methode AppendItemValue (itemName$, value). Zitat aus der API-Doku:</p>
<blockquote><p>If the document already has an item called itemName$, AppendItemValue does not replace it. Instead, it creates another item with the same name, and gives it the value you specify.</p></blockquote>
<p>Und es gibt NotesDocument.GetFirstItem ( name$ ). Zitat aus der API-Doku:</p>
<blockquote><p>However, the recommendation is that you avoid creating multiple items with the same name.</p></blockquote>
<p>Die Bedienungsanleitung von GetFirstItem legt also nahe, AppendItemValue nicht zu nutzen. Seltsam, dass so eine Situation entstanden ist.</p>
<p>Für meine Aufgabe habe ich schließlich NotesItem.AppendToTextList ( value$ ) benutzt. Das zeigt eine Schieflage: Es gibt keine Möglichkeit, einen hinzugefügten Wert wieder zu entfernen.</p>
<p>Also habe ich zwei Programmierungen ergänzt: Zum einen AppendTextToItemsTextlist ( name$, wert$ ) und zum anderen RemoveFromTextList ( wert$ ), jeweils in den entsprechenden <a title="Wrapper Pattern" href="http://c2.com/cgi/wiki?WrapperPattern" target="_blank">Wrapper-Klassen</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://aysx.de/eingroschen/?feed=rss2&#038;p=170</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
