<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
        <?xml-stylesheet type="text/css" href="http://blog.spamt.net//styles/feed.css"?>
<title type="html">Stuff</title>
<link rel="alternate" type="text/html" href="http://blog.spamt.net/"/>
<link rel="self" type="application/atom+xml" href="http://blog.spamt.net//archives/stuff/index-atom.xml"/>
<updated>2009-06-20T05:43:48+02:00</updated>
<author>
<name>Ulrich Dangel</name>
<uri>http://blog.spamt.net/</uri>
</author>
<id>http://blog.spamt.net//</id>
<generator uri="http://nanoblogger.sourceforge.net" version="3.3">
NanoBlogger
</generator>

<entry>
<title type="html">One command line interface for multiple RDBMS systems</title>
<author>
<name>Ulrich Dangel</name>
</author>
<link rel="alternate" type="text/html" href="http://blog.spamt.net//archives/2009/06/20/one_command_line_interface_for_multiple_rdbms_systems/index.html"/>
<id>http://blog.spamt.net//archives/2009/06/20/one_command_line_interface_for_multiple_rdbms_systems/index.html</id>
<published>2009-06-20T03:10:56+02:00</published>
<updated>2009-06-20T03:10:56+02:00</updated>
<category term="Shell stuff" />
<category term="Stuff" />
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<![CDATA[<p>
<a href='http://sqlline.sourceforge.net/'>sqlline</a> a java based console program
allows you to connect to any database with existing jdbc drivers replacing the original programs like mysql, sqlplus or psql.
</p>
<p>
Example to connect to an oracle database with sqlline:<br />
<pre>
$ java -cp ~/path/classpath/classes12.jar:/usr/share/java/sqlline.jar sqlline.SqlLine
sqlline version 1.0.2 by Marc Prud'hommeaux                
sqlline> !connect jdbc:oracle:thin:@hostname:1521:xe USER PASS
Connecting to jdbc:oracle:thin:@hostname:1521:xe
Connected to: Oracle (version Oracle Database 10g Express Edition Release 10.2.0.1.0 -
Production)
2: jdbc:oracle:thin:@hostname:1521:xe> 
</pre>
</p>]]>
</div>
</content>

</entry>
<entry>
<title type="html">Static ip assignment with libvirt</title>
<author>
<name>Ulrich Dangel</name>
</author>
<link rel="alternate" type="text/html" href="http://blog.spamt.net//archives/2009/02/20/static_ip_assignment_with_libvirt/index.html"/>
<id>http://blog.spamt.net//archives/2009/02/20/static_ip_assignment_with_libvirt/index.html</id>
<published>2009-02-20T20:04:37+02:00</published>
<updated>2009-02-20T20:04:37+02:00</updated>
<category term="Stuff" />
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<![CDATA[<p>
I just started to use <a href='http://libvirt.org/'>libvirt</a> and needed to have
static ip assignment for some of the systems. Libvirt supports this but there is no
documentation for this, a <a
href='https://www.redhat.com/archives/libvir-list/2009-February/msg00227.html'>patch
with documentation</a> has just been send to the mailing list, but thats all (except the
documentation in the *.c files ;-)</p>
A simple example which assigns <b>192.168.122.2</b> to the host with the mac <b>AA:BB:CC:DD:EE:FF</b>:

<pre>
&lt;network&gt;
  &lt;name&gt;sample&lt;/name&gt;
  &lt;bridge name='intbr0' /&gt;
  &lt;ip address='192.168.122.1' netmask='255.255.255.0'&gt;
    &lt;dhcp&gt;
      &lt;range start='192.168.122.2' end='192.168.122.254' /&gt;
      &lt;host mac='AA:BB:CC:DD:EE:FF' ip='192.168.122.2' name='foobar'/&gt;
    &lt;/dhcp&gt;
  &lt;/ip&gt;
&lt;/network&gt;
</pre>]]>
</div>
</content>

</entry>
<entry>
<title type="html">Short overview about mpris and command line tools</title>
<author>
<name>Ulrich Dangel</name>
</author>
<link rel="alternate" type="text/html" href="http://blog.spamt.net//archives/2009/01/11/short_overview_about_mpris_and_command_line_tools/index.html"/>
<id>http://blog.spamt.net//archives/2009/01/11/short_overview_about_mpris_and_command_line_tools/index.html</id>
<published>2009-01-11T13:13:05+02:00</published>
<updated>2009-01-11T13:13:05+02:00</updated>
<category term="Stuff" />
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<![CDATA[<p><h4>mpris player</h4>
<a href='http://wiki.xmms2.xmms.se/wiki/Media_Player_Interfaces'>media mlayer remote interface specification, short mpris</a> is a specification to connect media players via dbus.
This is quite useful as you can have one command for example to control Amarok, Audacious or any other mpris capable player.<br>
This are all gui player, so lets have a look at <a href='http://www.musicpd.org/'>mpd</a>, a music daemon simple to control via commandline.<br>
mpd natively does not support dbus, but there is another solution, <a href='http://ayeon.org/projects/mpDris/'>mpDris</a>, a mpd client exporting the mpris functionality via dbus.
</p>

<p>
<h4>mpris client</h4>
A really nice and powerful mpris command-line client is <a href='http://incise.org/mpris-remote.html'>mpris-remote</a> to access an mpris capable player. Here are some examples
commands: <br />
<pre>
mris-remote pause # toggle pause 
mris-remote next # next 
mpris-remote random true 
mpris-remote random false 
</pre>
it is really intuitiv, so just use ist.
<br>
<h4>So what is the benefit?</h4>
<ul>
<li>
You only have one command to control them all, so you can just switch your music player and your scripts will work. So instead of binding player specific commands to, e.g. your
multimedia keys on the keyboard, consider using mpris and it does not depend if you use mpd, amarok, audacious or any other client.</li>
<li>Additional features are possible, for example <a href='http://people.freedesktop.org/~hughsient/temp/dbus-interface.html#dbus-inhibit'>inhibit</a> power-manager when playing
music, so you can close the lid, unhibit when music stop so your pc can start sleep. And this works for multiple player out of the box.</li>
<li> You can can subscribe to signals from the music player, so you can just get the information and don't have to check the status regular</li>
</ul>
So, if you going to control a music player via commandline, look if the player support mpris and use this, instead of proprietary
command line.
</p>]]>
</div>
</content>

</entry>
<entry>
<title type="html">Mark build dependencys as automatical installed</title>
<author>
<name>Ulrich Dangel</name>
</author>
<link rel="alternate" type="text/html" href="http://blog.spamt.net//archives/2009/01/03/mark_build_dependencys_as_automatical_installed/index.html"/>
<id>http://blog.spamt.net//archives/2009/01/03/mark_build_dependencys_as_automatical_installed/index.html</id>
<published>2009-01-03T17:22:10+02:00</published>
<updated>2009-01-03T17:22:10+02:00</updated>
<category term="Just me" />
<category term="Stuff" />
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<![CDATA[The latest apt-get version in experimental has is a really nice feature, which allows to mark all packages installed with apt-get build-dep as an automatic install.<br>
You can set the option on the commandline
<pre>
apt-get -o "Apt::Get::Build-Dep-Automatic=True" build-dep gnome-power-manager
</pre>
<br>
or set it in the config file
<pre>
$ cat /etc/apt/apt.conf.d/99builddep 
APT::Get::Build-Dep-Automatic "True";

</pre>
<br>
To remove the dependencies just use apt-get autoremove]]>
</div>
</content>

</entry>
<entry>
<title type="html">Mehr als 800 Zuschauer innerhalb von 5 Minuten .... </title>
<author>
<name>Ulrich Dangel</name>
</author>
<link rel="alternate" type="text/html" href="http://blog.spamt.net//archives/2008/12/29/mehr_als_800_zuschauer_innerhalb_von_5_minuten/index.html"/>
<id>http://blog.spamt.net//archives/2008/12/29/mehr_als_800_zuschauer_innerhalb_von_5_minuten/index.html</id>
<published>2008-12-29T23:52:10+02:00</published>
<updated>2008-12-29T23:52:10+02:00</updated>
<category term="Stuff" />
<category term="25C3" />
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<![CDATA[beim diesj&auml;rigen Hacker Jeopardy beim <a
href='http://events.ccc.de/congress/2008/wiki/Main_Page'>25C3</a>.<br />
Ich habe da u.a. ich beim <a
href='http://events.ccc.de/congress/2008/wiki/Streaming'>Theora Streaming</a> mitgemacht, und wir haben dazu von der <a
href='http://www.fem.tu-ilmenau.de/'>FEM</a> ihre MMS Streams transcoded und Theora
Streams bereitgestellt. Kurz vor Start hatten wir ca. 400 Zuschauer, danach &gt;1200
Zuschauer.<br>
<img src='/images/streaming.png' alt='Stats theora streams'>
<br>
Das ganze auf 4 Servern (2 an der Uni Ulm, einer an der BA Lörrach und einer im BCC)
verteilt.
Sehr coole Aktion!<br>]]>
</div>
</content>

</entry>
<entry>
<title type="html">Touchpoint scrolling mit dem neusten X11</title>
<author>
<name>Ulrich Dangel</name>
</author>
<link rel="alternate" type="text/html" href="http://blog.spamt.net//archives/2008/11/20/touchpoint_scrolling_mit_dem_neusten_x11/index.html"/>
<id>http://blog.spamt.net//archives/2008/11/20/touchpoint_scrolling_mit_dem_neusten_x11/index.html</id>
<published>2008-11-20T14:14:30+02:00</published>
<updated>2008-11-20T14:14:30+02:00</updated>
<category term="Stuff" />
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<![CDATA[Da im neuen xorg die Konfiguration der Eingabegeraete nicht mehr in der xorg.conf steht sondern das ganze ueber hal erfolgt, muss die Konfiguration fuer das touchpoint scrolling
ueber hal erfolgen.<br/>
Dazu einfach eine Datei mit dem folgenden Inhalt in /etc/hal/fdi/policy/ anlegen, z.bsp. scrolling.fdi
<pre>
    &lt;match key="info.product" string="DualPoint Stick"&gt;
        &lt;merge key="input.x11_options.EmulateWheel" type="string"&gt;true&lt;/merge&gt;
        &lt;merge key="input.x11_options.EmulateWheelButton" type="string"&gt;2&lt;/merge&gt;
        &lt;merge key="input.x11_options.EmulateWheelTimeout" type="string"&gt;200&lt;/merge&gt;
        &lt;merge key="input.x11_options.XAxisMapping" type="string"&gt;6 7&lt;/merge&gt;
        &lt;merge key="input.x11_options.YAxisMapping" type="string"&gt;4 5&lt;/merge&gt;
        &lt;merge key="input.x11_options.ZAxsisMapping" type="string"&gt;4 5&lt;/merge&gt;
        &lt;merge key="input.x11_options.Emulate3Buttons" type="string"&gt;true&lt;/merge&gt;
        &lt;merge key="input.x11_options.Protocol" type="string"&gt;ExplorerPS/2&lt;/merge&gt;
    &lt;/match&gt;
</pre>
Wenn man wie ich ein ALPS Touchpad hat, benoetigt man momentan noch einen <a
href="http://userweb.kernel.org/~akpm/mmotm/broken-out/input-mouse-alpsc-handle-touchpoints-buttons-correctly.patch">Kernelpatch</a> um mittels mittlerer Maustaste + Touchpoint
zu scrollen.]]>
</div>
</content>

</entry>
<entry>
<title type="html">WSGI Applikationen als CGI ausfuehren</title>
<author>
<name>Ulrich Dangel</name>
</author>
<link rel="alternate" type="text/html" href="http://blog.spamt.net//archives/2008/09/21/wsgi_applikationen_als_cgi_ausfuehren/index.html"/>
<id>http://blog.spamt.net//archives/2008/09/21/wsgi_applikationen_als_cgi_ausfuehren/index.html</id>
<published>2008-09-21T16:07:45+02:00</published>
<updated>2008-09-21T16:07:45+02:00</updated>
<category term="Stuff" />
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<![CDATA[<a href="http://www.python.org/dev/peps/pep-0333/">WSGI</a> Frameworks erfreuen sich immer gr&ouml;sserer Beliebtheit, und es gibt zig verschienden M&ouml;glichkeiten diese in seine bestehende Infrastruktur
einzubinden, via Fastcgi, WSGI Modeln, http proxys etc. Die einfachste und sicherlich unperformanteste M&ouml;glichkeit ist, das ganze als CGI auszufuehen.<br>

<pre>
#!/usr/bin/env python2.5
from wsgiref.handlers import CGIHandler
from lodgeit import make_app

application = make_app(
    # the path to the database
    dburi='sqlite:////tmp/pastebin.db',
    secret_key='xlw7pe@FO_gZ\xa4\xah\xbdTz\xa7\x9v\xf7\x7f_o\x8f\xedq\xc7\xaf\xc5R'
)
CGIHandler().run(application) 

</pre>
<p> Dies ist ein Beispiel f&uuml;r <a href="http://dev.pocoo.org/projects/lodgeit/wiki">lodgeit</a>, und sollte eigentlich selbsterk&auml;rend sein.</p>
<p> Die Apache Konfiguration ist jetzt ziemlich einfach:
<pre>
ScriptAlias /foo "/pfad/zum/cgi/script.cgi"
</pre>
und fertig.
</p>]]>
</div>
</content>

</entry>
<entry>
<title type="html">Cache von Linux leeren</title>
<author>
<name>Ulrich Dangel</name>
</author>
<link rel="alternate" type="text/html" href="http://blog.spamt.net//archives/2008/09/20/cache_von_linux_leeren/index.html"/>
<id>http://blog.spamt.net//archives/2008/09/20/cache_von_linux_leeren/index.html</id>
<published>2008-09-20T16:41:24+02:00</published>
<updated>2008-09-20T16:41:24+02:00</updated>
<category term="Stuff" />
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<![CDATA[<pre>
echo 3 &gt; /proc/sys/vm/drop_caches
</pre>
Nur zur Erinnerung ;)]]>
</div>
</content>

</entry>
<entry>
<title type="html">Nur .onion URLs ueber Tor abrufen</title>
<author>
<name>Ulrich Dangel</name>
</author>
<link rel="alternate" type="text/html" href="http://blog.spamt.net//archives/2008/08/07/nur__onion_urls_ueber_tor_abrufen/index.html"/>
<id>http://blog.spamt.net//archives/2008/08/07/nur__onion_urls_ueber_tor_abrufen/index.html</id>
<published>2008-08-07T20:12:26+02:00</published>
<updated>2008-08-07T20:12:26+02:00</updated>
<category term="Stuff" />
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<![CDATA[<p>
Das <a href="http://www.torproject.org/">Tor Projekt</a> bietet eine sch&ouml;ne M&ouml;glichkeit um die <a href="http://www.vorratsdatenspeicherung.de/">Vorratsdatenspeicherung</a> zu umgehen und den ganzen Traffic zu
verschl&uuml;sseln. Dies ist leider nicht sonderlich praktikabel da das ganze langsam ist. Um nun aber trotzdem die Vorratsdatenspeicherung teilweise zu umgehen und schnell zu surfen bieten sich so genannte Hidden Services
in Tor an. Das sind Server die nur &uuml;ber das Tor Netzwerk erreichbar sind, und &uuml;ber ihren Public Key erreichbar sind. Sprich wenn man auf die Seite <a
href="http://5iiiyugkwgfwwb37.onion/">5iiiyugkwgfwwb37.onion</a> geht, erreicht man sicher den Rechner der den entsprechenden Private Key hat.
</p>
<p>
Um nun tor nur f&uuml;r die .onion Addressen zu nutzen installiert man sich einfach tor und privoxy und konfiguriert privoxy so das nur .onion urls &uuml;ber Tor weitergeleitet werden.
<pre>
apt-get install tor privoxy
echo 'forward-socks4a .onion             127.0.0.1:9050 .' &gt;&gt; /etc/privoxy/config
</pre>
Nun noch einfach den http proxy auf die Addresse des privoxy stellen (meistens 127.0.0.1:8118) und Spass haben.
</p>
<p>
Achja, installiert euch auch einfach einen Hidden Service und macht das ganze Bekannter!
</p>]]>
</div>
</content>

</entry>
<entry>
<title type="html">NoScript in Opera</title>
<author>
<name>Ulrich Dangel</name>
</author>
<link rel="alternate" type="text/html" href="http://blog.spamt.net//archives/2008/06/19/noscript_in_opera/index.html"/>
<id>http://blog.spamt.net//archives/2008/06/19/noscript_in_opera/index.html</id>
<published>2008-06-19T19:44:46+02:00</published>
<updated>2008-06-19T19:44:46+02:00</updated>
<category term="Stuff" />
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<![CDATA[Ich benutze seit neustem Opera, der zwar wirklich toll ist, dem meiner Meinung nach aber ein wichtiges Feature fehlt. Das &Auml;quivalent zu <a href="http://noscript.net/">NoScript</a>.<br>
Es gibt nun eine sehr coole L&ouml;sung f&uuml;r Opera die das ganze mit Hilfe von JavaScript nachbaut, sprich die JavaScripts werden nicht mehr per default ausgef&uuml;hrt sondern erst nach dem sie
explizit erlaubt wurden. <br>
Es ist jetzt auch m&ouml;glich Javascript tempor&auml;r f&uuml;r eine Seite bzw. ein bestimmtes Script zu erlauben, genau wie bei NoScript. Das interessante daran ist das die L&ouml;sung allein mit Hilfe
von JavaScript implementiert wurde.<br> Hier mal eine Kurzanleitung dazu:
<p>

Ihr braucht zun&auml;chst einen Ordner wo ihr die User Javascripte von Opera ablegen k&ouml;nnt, einfach einen erzeugen.<br>
Die Datei <a href="http://files.myopera.com/shoust/files/noscriptunblockmode.js", target=_blank">http://files.myopera.com/shoust/files/noscriptunblockmode.js</a> herunterladen und in dem entsprechenden
Ordner abspeichern.<br>
Das Skript erlaubt per Default Scripte von der Seite die ihr besucht, um das Verhalten zu &auml;ndern, editiert einfach die Datei und  setzt die Variable blocksitescripts auf true, und schon habt ihr das
Verhalten von NoScript.<br> 
Jetzt noch einfach die Option <i>User Javascript Files</i> von Opera auf das erzeugte Verzeichniss stellen, opera neustarten und schon hat man NoScript.<br>
Achja, wer die Datei mit wget runterladen will, sollte nicht vergessen den Referer anzugeben, sonst l&auml;dt man nur eine HTML Seite runter.

<pre>
wget --referer=http://files.myopera.com/shoust/files/noscriptunblockmode.js \
http://files.myopera.com/shoust/files/noscriptunblockmode.js
</pre>
</p>
<p>
Weiterf&uuml;hrende Diskussion rund um das Script findet man auf <a href="http://my.opera.com/community/forums/topic.dml?id=205858&t=1213897810&page=1#comment2537863",
target=_blank>http://my.opera.com/community/forums/topic.dml?id=205858&t=1213897810&page=1#comment2537863</a>
</p>
<p>
<h2>Update:</h2><br>
JavaScripts events die Direkt in HTML Tags angegeben werden k&ouml;nnen, werden von dem Script momentan <b>nicht</b> geblockt. Sprich es ist keine vollwertige L&ouml;sung :/
</p>]]>
</div>
</content>

</entry>

</feed>
