<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Christopher Arndt</title><link>https://chrisarndt.de/</link><description>Software-Entwicklung und Open Source-Beratung</description><atom:link href="https://chrisarndt.de/rss.xml" rel="self" type="application/rss+xml"></atom:link><language>de</language><lastBuildDate>Thu, 18 Jun 2020 23:28:08 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Bild des Tages (Teil 2)</title><link>https://chrisarndt.de/posts/bild-des-tages-2/</link><dc:creator>Christopher Arndt</dc:creator><description>&lt;div&gt;&lt;p&gt;Auch wenn es an manchen Tage zunächst schwer fiel, ein geeignetes Motiv zu
finden, habe ich die Serie über die Mindestdauer von acht Tagen hinaus bis zum
Ende der zweiten Woche fortgeführt. Am Samstag musste ich allerdings ein
"Notfoto" vom Smartphone benutzen und Sonntags habe ich dann beschlossen, diese
Reihe abzuschließen.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://chrisarndt.de/posts/bild-des-tages-2/"&gt;Weiterlesen…&lt;/a&gt; (4 min verbleiben zum Lesen)&lt;/p&gt;&lt;/div&gt;</description><category>Bild des Tages</category><category>Bilder</category><category>Fotografieren</category><category>Fotos</category><guid>https://chrisarndt.de/posts/bild-des-tages-2/</guid><pubDate>Mon, 07 Nov 2016 23:15:19 GMT</pubDate></item><item><title>Bild des Tages (Teil 1)</title><link>https://chrisarndt.de/posts/bild-des-tages-1/</link><dc:creator>Christopher Arndt</dc:creator><description>&lt;div class="section" id="die-aufgabe"&gt;
&lt;h2&gt;Die Aufgabe&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;Nimm die Kamara mindestens einmal pro Tag in die Hand und mache ein Bild.
Es dürfen auch mehrere Bilder gemacht werden, aber misslungene Aufnahmen
werden gleich aussortiert und aus höchstens zehn Aufnahmen eines Tages zwei
bis drei Favoriten bestimmt. Aus diesen wird dann ein "Bild des Tages"
gewählt. Am nächsten Tag "nachholen" ist nicht erlaubt. Es darf höchstens
ein Tag ausgesetzt werden und die Reihe sollte mindestens acht Tage
andauern.&lt;/p&gt;
&lt;p&gt;Es darf fotografiert werden, was beliebt. Schön wäre es, wenn die Aufnahmen
einen (persönlichen oder thematischen) Bezug zum Tag haben, an dem sie
entstehen, oder an verschiedenen Tagen jeweils neue Techniken oder
Herangehensweisen an das Fotografieren ausprobiert werden.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="https://chrisarndt.de/posts/bild-des-tages-1/"&gt;Weiterlesen…&lt;/a&gt; (4 min verbleiben zum Lesen)&lt;/p&gt;&lt;/div&gt;</description><category>Bild des Tages</category><category>Bilder</category><category>Fotografieren</category><category>Fotos</category><guid>https://chrisarndt.de/posts/bild-des-tages-1/</guid><pubDate>Tue, 01 Nov 2016 19:15:19 GMT</pubDate></item><item><title>Organix Roland JX-3P MIDI Expansion Kit</title><link>https://chrisarndt.de/posts/article/882/</link><dc:creator>Christopher Arndt</dc:creator><description>&lt;div&gt;&lt;p&gt;&lt;strong&gt;Foreign visitors:&lt;/strong&gt; &lt;em&gt;to download the &lt;/em&gt;Novation Remote SL&lt;em&gt; template for the
&lt;/em&gt;Roland JX-3P&lt;em&gt; with the &lt;/em&gt;Organix MIDI Upgrade&lt;em&gt;, see the link at the bottom of
this post.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Zu meinem letzten Geburtstag habe ich mir selbst einen &lt;a href="http://www.vintagesynth.com/roland/jx3p.php"&gt;Roland
JX-3P&lt;/a&gt; geschenkt, inklusive einem
&lt;a href="http://www.dtronics.nl/pages/dt200.html"&gt;DT200&lt;/a&gt;-Programmer (ein
&lt;a href="http://www.vintagesynth.com/roland/pgs.php"&gt;PG-200&lt;/a&gt;-Klon). Der JX-3P ist ein
6-stimmiger analoger Polysynth von 1983 und eines der ersten Geräte mit MIDI.
Er hat den typischen weichen Roland-Sound und trotz den, auf den ersten Blick,
simplen Synthesemöglichkeiten, kann man dem Gerät &lt;a href="https://soundcloud.com/spotlightkid/sets/roland-jx-3p-sound-demos"&gt;erstaunlich schöne und
facettenreiche
Klänge&lt;/a&gt;
entlocken. Mit dem Programmer geht die Soundprogrammierung sehr intuitiv und
flott von der Hand und man hat in minutenschnelle eigene Sounds erstellt und
wünscht sich bald mehr als die vorhandenen 32 Speicherplätze für User-Presets.&lt;/p&gt;
&lt;p&gt;Die originale MIDI-Implementierung des JX-3P ist sehr einfach (im Prinzip Note
On/Off und Pitchbend) und ein großes Manko ist, dass der JX-3P nicht die
gleichzeitige Benutzung des Programmers und MIDI-Empfang erlaubt. Da die
Parameter auch nicht über MIDI Control Changes oder Sysex kontrolliert werden
können, ist nicht möglich, gleichzeitig an mehreren Soundparametern
herumzuschrauben, während eine Sequenz von einem externen Sequenzer oder der
DAW über MIDI angesteuert wird.&lt;/p&gt;
&lt;p&gt;Um diese Einschränkungen zu beheben, gibt es seit einigen Jahren ein MIDI
Expansion Kit von &lt;strong&gt;Organix&lt;/strong&gt; (augenscheinlich ein Ein-Mann-Unternehmen aus den
Niederlanden), das den JX-3P um einige Features erweitert:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://chrisarndt.de/posts/article/882/"&gt;Weiterlesen…&lt;/a&gt; (3 min verbleiben zum Lesen)&lt;/p&gt;&lt;/div&gt;</description><category>German</category><category>JX-3P</category><category>MIDI</category><category>Novation</category><category>Organix</category><category>Remote SL</category><category>Roland</category><guid>https://chrisarndt.de/posts/article/882/</guid><pubDate>Thu, 11 Feb 2016 20:42:57 GMT</pubDate></item><item><title>Anmeldung für das PythonCamp 2016 ab Freitag, 15.1.2016</title><link>https://chrisarndt.de/posts/article/867/</link><dc:creator>Christopher Arndt</dc:creator><description>&lt;div&gt;&lt;p&gt;&lt;/p&gt;&lt;h2&gt;PythonCamp 2016&lt;/h2&gt;
&lt;h3&gt;Kostenloser Wissensaustausch rund um Python&lt;/h3&gt;
&lt;em&gt;(The following is an announcement for a Python "Un-Conference" in Cologne, Germany and therefor directed at a German-speaking audience.)&lt;/em&gt;
&lt;p&gt;Liebe Python-Fans,&lt;/p&gt;
&lt;p&gt;es ist wieder soweit: Am  &lt;strong&gt;Freitag, den 15. Januar&lt;/strong&gt;   öffnen wir die Online-Anmeldung für Teilnehmer des &lt;strong&gt;PythonCamps 2016!&lt;/strong&gt;
&lt;/p&gt;&lt;p style="text-align: left;"&gt;Die nunmehr siebte Ausgabe des &lt;strong&gt;PythonCamps&lt;/strong&gt; wird erneut durch die &lt;a href="http://pycologne.de/" target="_blank"&gt;Python User Group Köln&lt;/a&gt; sowie den &lt;a href="http://python-verband.org/" target="_blank"&gt;Python Software Verband e.V.&lt;/a&gt; in den Räumen unseres Partners &lt;a href="http://www.gfu.net/" target="_blank"&gt;GFU Cyrus AG&lt;/a&gt; in Köln ausgerichtet.&lt;/p&gt;
&lt;p style="text-align: center; font-size: x-large;"&gt;&lt;strong&gt;PythonCamp 2016&lt;/strong&gt;&lt;/p&gt;
&lt;p style="text-align: center; font-size: x-large;"&gt;Samstag und Sonntag, 2. - 3. April 2016&lt;/p&gt;
&lt;p style="text-align: center; font-size: x-large;"&gt;GFU Cyrus AG, Köln (Deutz)&lt;/p&gt;
&lt;p style="text-align: center; font-size: x-large;"&gt;&lt;a class="moz-txt-link-freetext" href="http://pythoncamp.de/"&gt;http://pythoncamp.de&lt;/a&gt;&lt;/p&gt;
Unsere zweitägige Veranstaltung richtet sich an alle, die sich für die Programmiersprache &lt;strong&gt;Python&lt;/strong&gt; und deren Einsatz begeistern - sei es im Bereich Web Development, Automatisierung, Scientific Computing oder einfach nur zum Spaß. Die Themen des &lt;strong&gt;PythonCamps&lt;/strong&gt; sind so vielfältig wie die Einsatzmöglichkeiten von Python selbst, denn das Programm wird - wie bei einem BarCamp üblich - ausschließlich von unseren Teilnehmern selbst gestaltet.
&lt;p&gt;&lt;a href="https://chrisarndt.de/posts/article/867/"&gt;Weiterlesen…&lt;/a&gt; (1 min verbleiben zum Lesen)&lt;/p&gt;&lt;/div&gt;</description><category>2016</category><category>Event</category><category>German</category><category>Köln</category><category>Python</category><category>PythonCamp</category><guid>https://chrisarndt.de/posts/article/867/</guid><pubDate>Wed, 13 Jan 2016 15:00:13 GMT</pubDate></item><item><title>EuroPython training checklist</title><link>https://chrisarndt.de/posts/article/806/</link><dc:creator>Christopher Arndt</dc:creator><description>&lt;div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Here's a checklist for participants of my training session &lt;a href="https://ep2014.europython.eu/en/schedule/sessions/85/"&gt;Interactive experiments in sound synthesis with Nsound, numpy and matplotlib&lt;/a&gt; at EuroPython 2014 in Berlin.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Have/bring &lt;strong&gt;a laptop&lt;/strong&gt; with Linux (preferred), Windows, or OS X and &lt;strong&gt;good headphones&lt;/strong&gt;.&lt;br&gt;
An external audio interface may help with audio performance but is not essential.&lt;/li&gt;
&lt;li&gt;Download and install&lt;a title="Virtual machine for my EuroPython 2014 sound experimentation training" href="http://blog.chrisarndt.de/article/796"&gt; my virtual machine appliance&lt;/a&gt; for the course&lt;br&gt;
&lt;strong&gt;or&lt;/strong&gt; follow the&lt;a title="Setting up a virtualenv for IPython and Nsound" href="http://blog.chrisarndt.de/?p=807"&gt; instructions to set up your own environment&lt;/a&gt; for the course.&lt;/li&gt;
&lt;li&gt;Get the initial &lt;a title="Trac repository browser for the course material" href="http://trac.chrisarndt.de/code/browser/soundxp-ep2014" target="_blank"&gt;course material&lt;/a&gt; from my Git repository (the $ denotes the shell prompt):
&lt;pre&gt;$ git clone http://chrisarndt.de/git/soundxp-ep2014.git soundxp&lt;/pre&gt;
&lt;p&gt;If you use my virtual machine, do this instead:&lt;/p&gt;
&lt;pre&gt;$ cd ~/work/soundxp
$ git pull&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;Test that audio output over your headphones works by playing the file &lt;em&gt;audio/mynameis.wav&lt;/em&gt; from the course material with any audio player provided by your system (for example on my virtual machine you can use &lt;strong&gt;aplay&lt;/strong&gt; from the command line).&lt;/li&gt;
&lt;li&gt;Test that your Nsound installation works by activating the virtual environment in which you installed it (see step 2) and running:
&lt;pre&gt;$ &lt;strong&gt;cd soundxp&lt;/strong&gt;
$ &lt;strong&gt;ipython -i startup.py&lt;/strong&gt;
Python 2.7.8 (default, Jul  1 2014, 17:30:21)
Type "copyright", "credits" or "license" for more information.
IPython 2.1.0 -- An enhanced Interactive Python.
[...]
In[1]: &lt;strong&gt;/pl mynameis&lt;/strong&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;We will quickly do steps 3 - 5  at the beginning of the course again for all participants to get up-to-date.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;I'm looking forward to meeting you all at the training session, let's have fun making noise!&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;</description><category>EuroPython</category><category>Nsound</category><guid>https://chrisarndt.de/posts/article/806/</guid><pubDate>Tue, 22 Jul 2014 13:01:49 GMT</pubDate></item><item><title>Setting up a virtualenv for IPython and Nsound</title><link>https://chrisarndt.de/posts/article/807/</link><dc:creator>Christopher Arndt</dc:creator><description>&lt;div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;These instructions detail how to create a working environment for participants of my training session &lt;a href="https://ep2014.europython.eu/en/schedule/sessions/85/"&gt;Interactive experiments in sound synthesis with Nsound, numpy and matplotlib&lt;/a&gt; at EuroPython 2014 in Berlin who do not want to or cannot use the &lt;a title="Virtual machine for my EuroPython 2014 sound experimentation training" href="http://blog.chrisarndt.de/article/796"&gt;virtual machine appliance&lt;/a&gt; I created for the course. These instructions are geared to Linux users, though with a bit of knowledge and adaptation on your part, they can also be applied to Microsoft Windows or Mac OS X systems. Inexperienced users are &lt;em&gt;strongly&lt;/em&gt; encouraged to use the virtual machine appliance instead!&lt;/p&gt;
&lt;p&gt;&lt;a href="https://chrisarndt.de/posts/article/807/"&gt;Weiterlesen…&lt;/a&gt; (1 min verbleiben zum Lesen)&lt;/p&gt;&lt;/div&gt;</description><category>EuroPython</category><category>Nsound</category><category>Python</category><category>virtualenv</category><guid>https://chrisarndt.de/posts/article/807/</guid><pubDate>Tue, 22 Jul 2014 13:00:52 GMT</pubDate></item><item><title>Virtual machine for my EuroPython 2014 sound experimentation training </title><link>https://chrisarndt.de/posts/article/796/</link><dc:creator>Christopher Arndt</dc:creator><description>&lt;div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;I have created a virtual machine for virtualbox for the participants of my training session &lt;a href="https://ep2014.europython.eu/en/schedule/sessions/85/"&gt;Interactive experiments in sound synthesis with Nsound, numpy and matplotlib&lt;/a&gt; at EuroPython 2014 in Berlin. It provides a ready to run Manjaro Linux System with an XFCE desktop and all the software necessary to follow the course.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update (2014-07-22):&lt;/strong&gt; &lt;em&gt;if you already are at EuroPython and downloading the virtual machine appliance is too slow, please contact me via email (see below) or on Twitter (&lt;a href="https://twitter.com/TheUnifaun" target="_blank"&gt;@TheUnifaun&lt;/a&gt;) and we'll meet and I'll transfer the file to you via USB stick or SD card.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Here are the instructions on how to get your environment for the training session up and running. These instructions should work regardless of whether you use Windows, OS X or Linux:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://chrisarndt.de/posts/article/796/"&gt;Weiterlesen…&lt;/a&gt; (2 min verbleiben zum Lesen)&lt;/p&gt;&lt;/div&gt;</description><category>EuroPython</category><category>Nsound</category><category>virtualbox</category><guid>https://chrisarndt.de/posts/article/796/</guid><pubDate>Sat, 19 Jul 2014 16:49:33 GMT</pubDate></item><item><title>Select a Python code block in Geany with Lua</title><link>https://chrisarndt.de/posts/article/784/</link><dc:creator>Christopher Arndt</dc:creator><description>&lt;div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Here's a nifty little Lua script for the &lt;a href="http://plugins.geany.org/geanylua.html" target="_blank"&gt;Geanylua&lt;/a&gt;
plug-in for the Geany text editor: install it into your
&lt;tt&gt;~/.config/geany/plugins/geanylua&lt;/tt&gt; folder and add the name of the script
to &lt;tt&gt;~/.config/geany/plugins/geanylua/hotkeys.cfg&lt;/tt&gt; to allow binding it to
a keyboard shortcut (I use &lt;em&gt;Ctrl-Alt-b&lt;/em&gt;, see the Geanylua &lt;a href="http://plugins.geany.org/geanylua/geanylua-keys.html" target="_blank"&gt;documentation&lt;/a&gt; for more information on assigning keys to
scripts).&lt;/p&gt;
&lt;p&gt;When the script is activated, it will select the block corresponding to the
current code folding level of the line the cursor is on in the active document.
E.g. if you place the cursor in the body of a Python function on a line that is
on the same indentation level as the first line of the body of the function, it
will select the whole function. Also, if the cursor is on the opening line of a
block, e.g. a line starting with &lt;strong&gt;class&lt;/strong&gt;, &lt;strong&gt;def&lt;/strong&gt;,
&lt;strong&gt;if&lt;/strong&gt;, etc., the script will select the block started by this
line.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: this strategy does not work well in conjunction with functions
preceded by a decorator, since the selection will not include the decorator
line. For this reason, the selection is inverted, i.e. it starts at the end of
the block and ends at the beginning. This means you can hold down shift and
move the cursor backwards, and the selection will extend from the beginning of
the block backwards, instead of the end of the selection being shortened as it
would be for a normal selection.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Here's the code of the Lua script as a &lt;a href="https://gist.github.com/SpotlightKid/9964085" target="_blank"&gt;Gist&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://gist.github.com/SpotlightKid/9964085"&gt;https://gist.github.com/SpotlightKid/9964085&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The script makes use of some Scintilla messages, which are only accessible in
Geanylua via the &lt;em&gt;geany.scintilla()&lt;/em&gt; function. The available messages
are documented &lt;a title="Scinitiall Documentation" href="http://www.scintilla.org/ScintillaDoc.html" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;</description><category>Code editing</category><category>Geany</category><category>Lua</category><guid>https://chrisarndt.de/posts/article/784/</guid><pubDate>Thu, 03 Apr 2014 22:09:54 GMT</pubDate></item><item><title>Benjamins Schlaflied</title><link>https://chrisarndt.de/posts/article/764/</link><dc:creator>Christopher Arndt</dc:creator><description>&lt;div&gt;&lt;h2&gt;Welcome, my Nephew&lt;/h2&gt;
&lt;p&gt;Here is a little song I wrote for my nephew, who was born two weeks ago, to
welcome him into this world and hopefully give him some comfort while he rests
from the tiring all-day business of processing his mother's milk. It is thus
called &lt;em&gt;Benjamins Schlaflied&lt;/em&gt; (Benjamin's Lullaby) and I play the piano
and an accordion, which I borrowed from my sister (the mother) a while ago. It
is the first time I used an accordion in a song, so please excuse my less than
virtuoso playing.&lt;/p&gt;
&lt;p&gt;According to the internet, &lt;em&gt;Benjamin&lt;/em&gt; may mean "son of the south" or "son of
fortune", among other things. If &lt;em&gt;Nomen est Omen&lt;/em&gt;, he seems to be destined for
a bright future. I give him my best wishes for the journey of live he has
embarked on!&lt;/p&gt;
&lt;p&gt;&lt;a href="https://chrisarndt.de/posts/article/764/"&gt;Weiterlesen…&lt;/a&gt; (2 min verbleiben zum Lesen)&lt;/p&gt;&lt;/div&gt;</description><category>Akkordion</category><category>Clavia Nord Electro</category><category>Download</category><category>Familie</category><category>Musik</category><category>Schlaflied</category><guid>https://chrisarndt.de/posts/article/764/</guid><pubDate>Tue, 18 Feb 2014 19:30:16 GMT</pubDate></item><item><title>Get the gist of it</title><link>https://chrisarndt.de/posts/article/750/</link><dc:creator>Christopher Arndt</dc:creator><description>&lt;div&gt;&lt;p&gt;Some months ago I finally caught up with modern development practices and
switched to Git for new software projects. I even now use my
&lt;a href="https://github.com/SpotlightKid" title="My GitHub account"&gt;GitHub&lt;/a&gt; and
&lt;a href="https://bitbucket.org/SpotlightKid" title="My Bitbucket account"&gt;Bitbucket&lt;/a&gt; accounts
more often, e.g. for collaboration projects, though I host my own projects &lt;a href="http://trac.chrisarndt.de/code/browser" title="Repository browser for my software projects"&gt;on
my own server&lt;/a&gt; with the help of Trac and gitosis.&lt;/p&gt;
&lt;p&gt;One thing I do like about GitHub though, are &lt;a href="https://gist.github.com/"&gt;Gists&lt;/a&gt;. Like many good ideas this
one makes one wonder, why nobody came up with it before. Basically Gists are
code snippets you publish on the web (like in a pastebin) but they are under
version control and each Gist is its own mini git repository. They let you
share programming ideas and nifty little tools with the rest of the world with
ease and others can easily take them and comment, expand or correct them. The
revision control makes it clear, what developed from where and who did what.
Finally, your Gist page on GitHub serves as a central place, where you can
browse, search and present all these digital scrap notes.&lt;/p&gt;
&lt;p&gt;It is also very easy to include Gists in your blog, which is what I'm starting
with this post.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://chrisarndt.de/posts/article/750/"&gt;Weiterlesen…&lt;/a&gt; (2 min verbleiben zum Lesen)&lt;/p&gt;&lt;/div&gt;</description><category>Cython</category><category>Gist</category><category>Shell</category><category>Snippet</category><guid>https://chrisarndt.de/posts/article/750/</guid><pubDate>Tue, 11 Feb 2014 19:43:07 GMT</pubDate></item></channel></rss>