<?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>ubuntuverse.at &#187; Programmierung</title>
	<atom:link href="http://www.ubuntuverse.at/tag/programmierung/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.ubuntuverse.at</link>
	<description>Berichte aus dem Ubuntu Universum</description>
	<lastBuildDate>Thu, 21 Aug 2014 09:42:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>Diagramme generieren mit Graphviz</title>
		<link>https://www.ubuntuverse.at/2009/08/19/diagramme-generieren-mit-graphviz/</link>
		<comments>https://www.ubuntuverse.at/2009/08/19/diagramme-generieren-mit-graphviz/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 05:23:40 +0000</pubDate>
		<dc:creator>Bernhard Essl</dc:creator>
				<category><![CDATA[Konsole]]></category>
		<category><![CDATA[Programme]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[diagramme]]></category>
		<category><![CDATA[dot]]></category>
		<category><![CDATA[graphviz]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[png]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.ubuntuverse.at/?p=1404</guid>
		<description><![CDATA[Nennt mich Nerd, aber ich erfreue mich an automatisch generierten Grafiken wie Diagrammen aus Datenmengen. Ein Tool das genau zu diesen Zweck verwendet werden kann ist Graphviz, damit lassen sich schnell und einfach Diagramme erstellen. Strukturdiagramme, Pfeildiagramme, automatisch erzeugte Diagramme und aufwändig manuell gestaltete Diagramme. Bevor eine Grafik erstellt werden kann wird eine Definitionsdatei erstellt [...]]]></description>
			<content:encoded><![CDATA[<p>Nennt mich Nerd, aber ich erfreue mich an automatisch generierten Grafiken wie Diagrammen aus Datenmengen. Ein Tool das genau zu diesen Zweck verwendet werden kann ist Graphviz, damit lassen sich schnell und einfach Diagramme erstellen. Strukturdiagramme, Pfeildiagramme, automatisch erzeugte Diagramme und aufwändig manuell gestaltete Diagramme. Bevor eine Grafik erstellt werden kann wird eine Definitionsdatei erstellt in der Beschreibungssprache DOT.</p>
<p>Im ersten Beispiel soll eine Grafik erzeugt werden, die von &#8220;Linux&#8221; Verbindungen zu &#8220;Debian&#8221;, &#8220;Gentoo&#8221; und &#8220;Ubuntu&#8221; zeigt.</p>
<pre>
/* linux_family_1.dot */
digraph G {
    Linux -> Debian
    Linux -> Gentoo
    Linux -> Ubuntu
}
</pre>
<p>Mit dem Kommandozeilenbefehl dot wird nun der Quelltext zu einer Grafik (GIF, PNG, SVG oder PostScript) verarbeitet. In unseren Beispiel wollen wir eine PNG Datei aus dem DOT Quelltext erzeugen.</p>
<pre>dot -Tpng linux_family_1.dot > linux_family_1.png</pre>
<p><span id="more-1404"></span></p>
<p><img src="http://www.ubuntuverse.at/wp-content/linux_family_1.png" alt="linux_family_1" title="linux_family_1" width="427" height="155" class="alignnone size-full wp-image-1407" /></p>
<p>Das ganze kann noch etwas mit Farb- und Font-Definitionen aufgewertet werden.</p>
<pre>
digraph G {
    node [fontname=Verdana,fontsize=9]
    node [style=filled]
    node [fillcolor="#EEEEEE"]
    node [color="#EEEEEE"]
    edge [color="#31CEF0"]
    node [shape=box]

    Linux -> Debian
    Linux -> Gentoo
    Linux -> Ubuntu
    Debian -> Ubuntu
}
</pre>
<p><img src="http://www.ubuntuverse.at/wp-content/linux_family_2.png" alt="linux_family_2" title="linux_family_2" width="196" height="251" class="alignnone size-full wp-image-1408" /></p>
<p>Es lässt sich noch einiges mehr mit Graphviz anstellen, ich möchte hier aber auf die Doku von <a href="http://www.graphviz.org/">Graphviz</a> und auf den Wiki-Artikel <a href="http://wiki.ubuntuusers.de/Graphviz">http://wiki.ubuntuusers.de/Graphviz</a> verweisen.</p>
<p>Zum Schluss noch ein Beziehungsdiagramm das die Tags aus den Bookmarks von meinen delicious.com Account darstellt. </p>
<p><a href="http://www.ubuntuverse.at/wp-content/delicious.png"><img src="http://www.ubuntuverse.at/wp-content/delicious-300x176.png" alt="delicious" title="delicious" width="300" height="176" class="alignnone size-medium wp-image-1418" /></a></p>
<p>Hier das Skript (Ruby) für Interessierte.</p>
<p><script src='http://pastie.org/987002.js'></script></p>
]]></content:encoded>
			<wfw:commentRss>https://www.ubuntuverse.at/2009/08/19/diagramme-generieren-mit-graphviz/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Suchen und finden mit Vim</title>
		<link>https://www.ubuntuverse.at/2009/06/29/suchen-und-finden-mit-vim/</link>
		<comments>https://www.ubuntuverse.at/2009/06/29/suchen-und-finden-mit-vim/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 05:23:15 +0000</pubDate>
		<dc:creator>Bernhard Essl</dc:creator>
				<category><![CDATA[Programme]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.ubuntuverse.at/?p=824</guid>
		<description><![CDATA[In einer Datei suchen Eine Datei wird mit dem Schrägstrich / im Kommandomodus ESC durchsucht. Natürlich kann hier auch regular expression angewendet werden: /^require Mit n gelangt man zum nächsten Treffer. Um auf den Treffer davor zu kommen drückt man N. Auf einer Zeile suchen Beim Navigieren in einer langen Zeile ist f sehr hilfreich. [...]]]></description>
			<content:encoded><![CDATA[<p><img class="post_img" height="41" width="51" title="vim-logo" alt="vim-logo" src="http://www.ubuntuverse.at/wp-content/vim-logo.png"/> <strong>In einer Datei suchen</strong></p>
<p>Eine Datei wird mit dem Schrägstrich <span class="key">/</span> im Kommandomodus <span class="key">ESC</span> durchsucht. Natürlich kann hier auch regular expression angewendet werden: </p>
<pre lang="vim">/^require</pre>
<p>Mit <span class="key">n</span> gelangt man zum nächsten Treffer. Um auf den Treffer davor zu kommen drückt man <span class="key">N</span>.</p>
<p><strong>Auf einer Zeile suchen</strong></p>
<p>Beim Navigieren in einer langen Zeile ist f sehr hilfreich. So springt der Cursor bei <span class="key">f</span> <span class="key">></span> auf die erste Übereinstimmung, mit dem Zeichen >. Ein <span class="key">F</span> <span class="key">></span> sucht von der aktuellen Cursor Position von rechts nach links weiter. Um zum nächsten Treffer zu gelangen reicht ein <span class="key">;</span>.</p>
<p><strong>In mehreren Dateien suchen</strong></p>
<p>Dateien können mit grep durchsucht werden:</p>
<pre lang="vim">:grep require *.rb</pre>
<p><span id="more-824"></span></p>
<p>gefunden werden alle Dateien die das Wort &#8220;require&#8221; beinhalten und die Dateiendung rb haben. Ein Ergebnis könnte in etwa so aussehen:</p>
<pre lang="plain">Press ENTER or type command to continue
start.rb:4:require 'open-uri'
model.rb:1:require 'active_record'
youtube.rb:1:require 'nokogiri'
youtube.rb:2:require 'open-uri'
</pre>
<p>Drückt man nun <span class="key">ENTER</span> wird sofort der erste Treffer start.rb mit Cursor auf Zeile 4 in Vim geöffnet.</p>
<p>Um eine Liste der gefunden Ergebnisse zu erhalten, wird ein :cl im Kommandomodus <span class="key">ESC</span> gemacht:</p>
<pre lang="vim">
:cl
1 start.rb:4:require 'open-uri'
2 model.rb:1:require 'active_record'
3 youtube.rb:1:require 'nokogiri'
4 youtube.rb:2:require 'open-uri'
</pre>
<p>Um z. B. auf den letzten Treffer zu gelangen, wird die erste Zahl (4) bei den Treffer angegeben.</p>
<pre lang="vim">:cc 4</pre>
<p>Es ist natürlich auch möglich bekannte grep Funktionen wie -r für rekursive Suche oder -P für Perl regular expression, zu verwenden.</p>
<p><strong>Einstellungen für die .vimrc</strong></p>
<p>Die erste Einstellung soll schon bei der Eingabe, die ersten Ergebnisse anzeigen und nicht erst beim Absenden des ganzen Suchbegriffes:</p>
<pre lang="vim">set incsearch</pre>
<p>Eine weitere Einstellung ist hlsearch. Sie zeigt alle Treffer an und nicht nur den ersten Treffer in der Datei.</p>
<pre lang="vim">set hlsearch</pre>
<p>Das Suchtreffer in Vim dauerhaft markiert bleiben, finde ich eher störend, darum habe ich mir in meiner vimrc die <span class="key">ENTER</span> Taste so belegt das sie die Markierung aufhebt.</p>
<pre lang="vim">nnoremap <CR> :nohlsearch<CR>/<BS><CR></pre>
<p>Damit kann ich nach der Suche, wenn ich die Markierungen nicht mehr benötige einfach ein <span class="key">ENTER</span> drücken und sie verschwinden.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.ubuntuverse.at/2009/06/29/suchen-und-finden-mit-vim/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>XDG Base Directory Specification</title>
		<link>https://www.ubuntuverse.at/2009/06/18/xdg-base-directory-specification/</link>
		<comments>https://www.ubuntuverse.at/2009/06/18/xdg-base-directory-specification/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 05:30:41 +0000</pubDate>
		<dc:creator>Bernd S.</dc:creator>
				<category><![CDATA[Gnome]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[desktop]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[freedesktop.org]]></category>
		<category><![CDATA[linux freedesktop]]></category>
		<category><![CDATA[standard]]></category>

		<guid isPermaLink="false">http://www.ubuntuverse.at/?p=616</guid>
		<description><![CDATA[Jeder der sich schon etwas mit Linux beschäftigt hat, kennt die vielen versteckten Dateien in seinem Home-Verzeichnis. Die meisten Programme speichern ihre Konfigurationsdateien und Userdaten unter ~/.programmname/. Dies kann jedoch sehr schnell unübersichtlich werden. Wenn ich z.B auf meinem Rechner das Kommando bernd@taylor:~$ ls -d .* &#124; wc -l 88 ausführe, so kann man sehen, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="post_img" title="freedesktop_icon_big.small" src="http://www.ubuntuverse.at/wp-content/freedesktop_icon_big.small.png" alt="freedesktop_icon_big.small" width="77" height="65" /><br />
Jeder der sich schon etwas mit Linux beschäftigt hat, kennt die vielen versteckten Dateien in seinem Home-Verzeichnis. Die meisten Programme speichern ihre Konfigurationsdateien und Userdaten unter <em>~/.programmname/</em>. Dies kann jedoch sehr schnell unübersichtlich werden. Wenn ich z.B auf meinem Rechner das Kommando</p>
<pre lang="bash">bernd@taylor:~$ ls -d .* | wc -l
88</pre>
<p>ausführe, so kann man sehen, dass ich 88 versteckte Dateien/Ordner direkt in meinem Homeverzeichnis habe.</p>
<p>Um das ganze besser zu Strukturieren und um eine einheitliche Basis auf verschiedenen Arbeitsumgebungen (Gnome, KDE,..) zu haben, gibt es dazu eine Spezifikation des <a href="http://www.freedesktop.org" target="_blank">freedesktop.org</a> Projekts, welches sich zum Ziel gesetzt hat, die Interoperabilität und die gemeinsame Basis von Arbeitsumgebungen für das X Window System zu verbessern. (Wikipedia-Artikel zu freedesktop.org: <a href="http://de.wikipedia.org/wiki/Freedesktop.org" target="_blank">http://de.wikipedia.org/wiki/Freedesktop.org</a>)</p>
<p>Die Spezifikation findet man unter: <a href="http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html" target="_blank">http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html</a> Darin wird definiert wo Userdaten, Cachedaten des Users und Konfigurationsdaten gespeichert werden sollen. Ebenfalls wird definiert in welcher Reihenfolge nach Daten- und Konfigurationsordnern gesucht werden soll.</p>
<p>Grundsätzlich sind folgende Speicherorte als Defaultwerte definiert:</p>
<ul>
<li><strong>$HOME/.local/share</strong> für alle Userdaten</li>
<li><strong>$HOME/.config</strong> für alle Konfigurationsdaten</li>
</ul>
<p>Es gibt einige Programme, welche sich an diese Spezifikation halten. Einige Programme legen jedoch alles (Daten und Konfigurationen) unter $HOME/.config ab. Doch leider schreiben die meisten Programme ihre Daten/Konfigurationen nur unter $HOME, und somit kommt es zu der Anfangs erwähnten unübersichtlichen Ordnerstruktur im Home-Verzeichnis.</p>
<p>Daher mein Appell an alle Entwickler sich an diese Spezifikation zu halten. All jene, welche selbst keine Software schreiben, könnten Bugreports oder Feature-Request bei den einzelnen Softwareprojekten eintragen um somit auf diesen Standard hinzuweisen.<br />
Aber auch Canonical&#8217;s Design und Usability Team hat sich diesem Thema schon angenommen. Für Ubuntu 9.10 (Karmic Koala) gibt es die Initiative<a href="https://launchpad.net/hundredpapercuts" target="_blank"> &#8220;One Hundred Paper Cuts</a>&#8220;, welche &#8220;kleine&#8221; Usability-Probleme beheben soll. In einem <a href="https://wiki.ubuntu.com/LittleDetails#Use%20XDG%20folders" target="_blank">Dokument</a> im Ubuntu-Wiki wird das Thema &#8220;XDG folders&#8221; auch aufgeführt. Jetzt müssen sich nur mehr die Entwickler der einzelnen Softwareprojekte um dieses Thema kümmern.</p>
<p>Zuletzt habe ich noch einen Tipp für alle Python-Programmierer unter euch. Freedesktop.org stellt noch eine Python Library zur Verfügung, welche es erleichtert sich an die Standards zu halten. Die Library findet man unter: <a href="http://freedesktop.org/wiki/Software/pyxdg" target="_blank">http://freedesktop.org/wiki/Software/pyxdg</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.ubuntuverse.at/2009/06/18/xdg-base-directory-specification/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
