<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://sessrumnir.net/fernseher/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Admin</id>
	<title>Fernseher - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://sessrumnir.net/fernseher/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Admin"/>
	<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Special:Contributions/Admin"/>
	<updated>2026-07-01T02:29:48Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=GPS_clock&amp;diff=106767</id>
		<title>GPS clock</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=GPS_clock&amp;diff=106767"/>
		<updated>2017-03-23T21:07:33Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are two separate yet related goals here:&lt;br /&gt;
* Create a local timeserver for my network, based on a GPS time-source on a raspberry-pi.&lt;br /&gt;
** Should use a 1PPS capable GPS module.&lt;br /&gt;
** Doesn&amp;#039;t really need a display, though it can have one.&lt;br /&gt;
** Wired networking is fine&lt;br /&gt;
** I think it can almost entirely be based on existing packages, like gpsd, ntpd, etc.&lt;br /&gt;
* Create a standalone clock, using a GPS source, based on a raspberry-pi&lt;br /&gt;
** GPS can be a simple cheap, available one.&lt;br /&gt;
** Doesn&amp;#039;t really need super-accurate inter-second timing, we&amp;#039;re only going to display to the nearest second anyway.&lt;br /&gt;
** Absolutely needs a display of some sort&lt;br /&gt;
** Should be able to work with no network at all.  If wireless is available, to do FW updates or something, bonus.&lt;br /&gt;
** Power usage is somewhat of a concern, though could start out using wall-wart power&lt;br /&gt;
** A big 5&amp;quot; or 7&amp;quot; touch display is way overkill, but could display sun location, etc, and use touch for setup&lt;br /&gt;
** Use GPS co-ords to pick local timezone.&lt;br /&gt;
** OLED screen and batteries?&lt;br /&gt;
** Could we get away with solar power?&lt;br /&gt;
** low-power mode is a goal to get us off the plug&lt;br /&gt;
** any way we can have it turn the display off when its not light out?  or when I&amp;#039;m not looking at it? :)&lt;br /&gt;
&lt;br /&gt;
==Things to Display==&lt;br /&gt;
* Date &amp;amp; Time in several formats:&lt;br /&gt;
** UT1&lt;br /&gt;
** UTC&lt;br /&gt;
** Unix&lt;br /&gt;
** Local&lt;br /&gt;
** MST&lt;br /&gt;
** AST&lt;br /&gt;
* Number of satellites used in fix&lt;br /&gt;
* Battery power left&lt;br /&gt;
* Day of week (text) and month of year (text) and week of year (numeric, ISO)&lt;br /&gt;
* Time to sunset/since sunrise&lt;br /&gt;
* Temp/humidity/pressure&lt;br /&gt;
* latitude/longitude&lt;br /&gt;
* local time-zone&lt;br /&gt;
* DST active&lt;br /&gt;
&lt;br /&gt;
==Things to Adjust==&lt;br /&gt;
* Ideally nothing, other than date/time display preferences:&lt;br /&gt;
** 12-hour/24-hour?&lt;br /&gt;
** ISO formatting options?&lt;br /&gt;
** which time choices (above) to display at all times&lt;br /&gt;
* Other localization settings &amp;amp; options&lt;br /&gt;
** C/F for temp&lt;br /&gt;
** Power-saving settings?&lt;br /&gt;
* Some way to initiate FW updates?&lt;br /&gt;
** Would be cool if it would detect when my phone is making Wifi available, then:&lt;br /&gt;
*** connect to that&lt;br /&gt;
*** check git for FW updates (or somewhere)&lt;br /&gt;
*** check somewhere for OS and kernel updates&lt;br /&gt;
*** update itself if needed&lt;br /&gt;
*** reboot/restart app if needed&lt;br /&gt;
&lt;br /&gt;
==Anything else to make available?==&lt;br /&gt;
* Maybe a calculator?  phone or laptop is more convenient, probably&lt;br /&gt;
* Some sort of calendar mode?  Again, for something like this, more than a glance, phone/laptop more convenient&lt;br /&gt;
* Something else I could see at a glance?  Home status?&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=GPS_clock&amp;diff=106766</id>
		<title>GPS clock</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=GPS_clock&amp;diff=106766"/>
		<updated>2017-03-23T21:07:15Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are two separate yet related goals here:&lt;br /&gt;
* Create a local timeserver for my network, based on a GPS time-source on a raspberry-pi.&lt;br /&gt;
** Should use a 1PPS capable GPS module.&lt;br /&gt;
** Doesn&amp;#039;t really need a display, though it can have one.&lt;br /&gt;
** Wired networking is fine&lt;br /&gt;
** I think it can almost entirely be based on existing packages, like gpsd, ntpd, etc.&lt;br /&gt;
* Create a standalone clock, using a GPS source, based on a raspberry-pi&lt;br /&gt;
** GPS can be a simple cheap, available one.&lt;br /&gt;
** Doesn&amp;#039;t really need super-accurate inter-second timing, we&amp;#039;re only going to display&lt;br /&gt;
   to the nearest second anyway.&lt;br /&gt;
** Absolutely needs a display of some sort&lt;br /&gt;
** Should be able to work with no network at all.  If wireless is available, to do FW updates or something, bonus.&lt;br /&gt;
** Power usage is somewhat of a concern, though could start out using wall-wart power&lt;br /&gt;
** A big 5&amp;quot; or 7&amp;quot; touch display is way overkill, but could display sun location, etc, and use touch for setup&lt;br /&gt;
** Use GPS co-ords to pick local timezone.&lt;br /&gt;
** OLED screen and batteries?&lt;br /&gt;
** Could we get away with solar power?&lt;br /&gt;
** low-power mode is a goal to get us off the plug&lt;br /&gt;
** any way we can have it turn the display off when its not light out?  or when I&amp;#039;m not looking at it? :)&lt;br /&gt;
&lt;br /&gt;
==Things to Display==&lt;br /&gt;
* Date &amp;amp; Time in several formats:&lt;br /&gt;
** UT1&lt;br /&gt;
** UTC&lt;br /&gt;
** Unix&lt;br /&gt;
** Local&lt;br /&gt;
** MST&lt;br /&gt;
** AST&lt;br /&gt;
* Number of satellites used in fix&lt;br /&gt;
* Battery power left&lt;br /&gt;
* Day of week (text) and month of year (text) and week of year (numeric, ISO)&lt;br /&gt;
* Time to sunset/since sunrise&lt;br /&gt;
* Temp/humidity/pressure&lt;br /&gt;
* latitude/longitude&lt;br /&gt;
* local time-zone&lt;br /&gt;
* DST active&lt;br /&gt;
&lt;br /&gt;
==Things to Adjust==&lt;br /&gt;
* Ideally nothing, other than date/time display preferences:&lt;br /&gt;
** 12-hour/24-hour?&lt;br /&gt;
** ISO formatting options?&lt;br /&gt;
** which time choices (above) to display at all times&lt;br /&gt;
* Other localization settings &amp;amp; options&lt;br /&gt;
** C/F for temp&lt;br /&gt;
** Power-saving settings?&lt;br /&gt;
* Some way to initiate FW updates?&lt;br /&gt;
** Would be cool if it would detect when my phone is making Wifi available, then:&lt;br /&gt;
*** connect to that&lt;br /&gt;
*** check git for FW updates (or somewhere)&lt;br /&gt;
*** check somewhere for OS and kernel updates&lt;br /&gt;
*** update itself if needed&lt;br /&gt;
*** reboot/restart app if needed&lt;br /&gt;
&lt;br /&gt;
==Anything else to make available?==&lt;br /&gt;
* Maybe a calculator?  phone or laptop is more convenient, probably&lt;br /&gt;
* Some sort of calendar mode?  Again, for something like this, more than a glance, phone/laptop more convenient&lt;br /&gt;
* Something else I could see at a glance?  Home status?&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=GPS_clock&amp;diff=106765</id>
		<title>GPS clock</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=GPS_clock&amp;diff=106765"/>
		<updated>2017-03-23T21:04:26Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are two separate yet related goals here:&lt;br /&gt;
* Create a local timeserver for my network, based on a GPS time-source on a raspberry-pi.&lt;br /&gt;
  * Should use a 1PPS capable GPS module.&lt;br /&gt;
  * Doesn&amp;#039;t really need a display, though it can have one.&lt;br /&gt;
  * Wired networking is fine&lt;br /&gt;
  * I think it can almost entirely be based on existing packages, like gpsd, ntpd, etc.&lt;br /&gt;
* Create a standalone clock, using a GPS source, based on a raspberry-pi&lt;br /&gt;
  - GPS can be a simple cheap, available one.&lt;br /&gt;
  - Doesn&amp;#039;t really need super-accurate inter-second timing, we&amp;#039;re only going to display&lt;br /&gt;
    to the nearest second anyway.&lt;br /&gt;
  - Absolutely needs a display of some sort&lt;br /&gt;
  - Should be able to work with no network at all.  If wireless is available, to do FW updates or something, bonus.&lt;br /&gt;
  - Power usage is somewhat of a concern, though could start out using wall-wart power&lt;br /&gt;
  - A big 5&amp;quot; or 7&amp;quot; touch display is way overkill, but could display sun location, etc, and use touch for setup&lt;br /&gt;
  - Use GPS co-ords to pick local timezone.&lt;br /&gt;
  - OLED screen and batteries?&lt;br /&gt;
  - Could we get away with solar power?&lt;br /&gt;
  - low-power mode is a goal to get us off the plug&lt;br /&gt;
  - any way we can have it turn the display off when its not light out?  or when I&amp;#039;m not looking at it? :)&lt;br /&gt;
&lt;br /&gt;
==Things to Display==&lt;br /&gt;
* Date &amp;amp; Time in several formats:&lt;br /&gt;
  - UT1&lt;br /&gt;
  - UTC&lt;br /&gt;
  - Unix&lt;br /&gt;
  - Local&lt;br /&gt;
  - MST&lt;br /&gt;
  - AST&lt;br /&gt;
* Number of satellites used in fix&lt;br /&gt;
* Battery power left&lt;br /&gt;
* Day of week (text) and month of year (text) and week of year (numeric, ISO)&lt;br /&gt;
* Time to sunset/since sunrise&lt;br /&gt;
* Temp/humidity/pressure&lt;br /&gt;
* latitude/longitude&lt;br /&gt;
* local time-zone&lt;br /&gt;
* DST active&lt;br /&gt;
&lt;br /&gt;
==Things to Adjust==&lt;br /&gt;
* Ideally nothing, other than date/time display preferences:&lt;br /&gt;
  - 12-hour/24-hour?&lt;br /&gt;
  - ISO formatting options?&lt;br /&gt;
  - which time choices (above) to display at all times&lt;br /&gt;
* Other localization settings &amp;amp; options&lt;br /&gt;
  - C/F for temp&lt;br /&gt;
  - Power-saving settings?&lt;br /&gt;
* Some way to initiate FW updates?&lt;br /&gt;
  - Would be cool if it would detect when my phone is making Wifi available, then:&lt;br /&gt;
     * connect to that&lt;br /&gt;
     * check git for FW updates (or somewhere)&lt;br /&gt;
     * check somewhere for OS and kernel updates&lt;br /&gt;
     * update itself if needed&lt;br /&gt;
     * reboot/restart app if needed&lt;br /&gt;
&lt;br /&gt;
==Anything else to make available?==&lt;br /&gt;
* Maybe a calculator?  phone or laptop is more convenient, probably&lt;br /&gt;
* Some sort of calendar mode?  Again, for something like this, more than a glance, phone/laptop more convenient&lt;br /&gt;
* Something else I could see at a glance?  Home status?&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=GPS_clock&amp;diff=106764</id>
		<title>GPS clock</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=GPS_clock&amp;diff=106764"/>
		<updated>2017-03-23T21:04:08Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are two separate yet related goals here:&lt;br /&gt;
* Create a local timeserver for my network, based on a GPS time-source on a raspberry-pi.&lt;br /&gt;
  - Should use a 1PPS capable GPS module.&lt;br /&gt;
  - Doesn&amp;#039;t really need a display, though it can have one.&lt;br /&gt;
  - Wired networking is fine&lt;br /&gt;
  - I think it can almost entirely be based on existing packages, like gpsd, ntpd, etc.&lt;br /&gt;
* Create a standalone clock, using a GPS source, based on a raspberry-pi&lt;br /&gt;
  - GPS can be a simple cheap, available one.&lt;br /&gt;
  - Doesn&amp;#039;t really need super-accurate inter-second timing, we&amp;#039;re only going to display&lt;br /&gt;
    to the nearest second anyway.&lt;br /&gt;
  - Absolutely needs a display of some sort&lt;br /&gt;
  - Should be able to work with no network at all.  If wireless is available, to do FW updates or something, bonus.&lt;br /&gt;
  - Power usage is somewhat of a concern, though could start out using wall-wart power&lt;br /&gt;
  - A big 5&amp;quot; or 7&amp;quot; touch display is way overkill, but could display sun location, etc, and use touch for setup&lt;br /&gt;
  - Use GPS co-ords to pick local timezone.&lt;br /&gt;
  - OLED screen and batteries?&lt;br /&gt;
  - Could we get away with solar power?&lt;br /&gt;
  - low-power mode is a goal to get us off the plug&lt;br /&gt;
  - any way we can have it turn the display off when its not light out?  or when I&amp;#039;m not looking at it? :)&lt;br /&gt;
&lt;br /&gt;
==Things to Display==&lt;br /&gt;
* Date &amp;amp; Time in several formats:&lt;br /&gt;
  - UT1&lt;br /&gt;
  - UTC&lt;br /&gt;
  - Unix&lt;br /&gt;
  - Local&lt;br /&gt;
  - MST&lt;br /&gt;
  - AST&lt;br /&gt;
* Number of satellites used in fix&lt;br /&gt;
* Battery power left&lt;br /&gt;
* Day of week (text) and month of year (text) and week of year (numeric, ISO)&lt;br /&gt;
* Time to sunset/since sunrise&lt;br /&gt;
* Temp/humidity/pressure&lt;br /&gt;
* latitude/longitude&lt;br /&gt;
* local time-zone&lt;br /&gt;
* DST active&lt;br /&gt;
&lt;br /&gt;
==Things to Adjust==&lt;br /&gt;
* Ideally nothing, other than date/time display preferences:&lt;br /&gt;
  - 12-hour/24-hour?&lt;br /&gt;
  - ISO formatting options?&lt;br /&gt;
  - which time choices (above) to display at all times&lt;br /&gt;
* Other localization settings &amp;amp; options&lt;br /&gt;
  - C/F for temp&lt;br /&gt;
  - Power-saving settings?&lt;br /&gt;
* Some way to initiate FW updates?&lt;br /&gt;
  - Would be cool if it would detect when my phone is making Wifi available, then:&lt;br /&gt;
     * connect to that&lt;br /&gt;
     * check git for FW updates (or somewhere)&lt;br /&gt;
     * check somewhere for OS and kernel updates&lt;br /&gt;
     * update itself if needed&lt;br /&gt;
     * reboot/restart app if needed&lt;br /&gt;
&lt;br /&gt;
==Anything else to make available?==&lt;br /&gt;
* Maybe a calculator?  phone or laptop is more convenient, probably&lt;br /&gt;
* Some sort of calendar mode?  Again, for something like this, more than a glance, phone/laptop more convenient&lt;br /&gt;
* Something else I could see at a glance?  Home status?&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=GPS_clock&amp;diff=106763</id>
		<title>GPS clock</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=GPS_clock&amp;diff=106763"/>
		<updated>2017-03-23T21:01:49Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;There are two seperate yet related goals here: * Create a local timeserver for my network, based on a GPS time-source on a raspberry-pi.   - Should use a 1PPS capable GPS modu...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are two seperate yet related goals here:&lt;br /&gt;
* Create a local timeserver for my network, based on a GPS time-source on a raspberry-pi.&lt;br /&gt;
  - Should use a 1PPS capable GPS module.&lt;br /&gt;
  - Doesn&amp;#039;t really need a display, though it can have one.&lt;br /&gt;
  - Wired networking is fine&lt;br /&gt;
  - I think it can almost entirely be based on existing packages, like gpsd, ntpd, etc.&lt;br /&gt;
* Create a standalone clock, using a GPS source, based on a raspberry-pi&lt;br /&gt;
  - GPS can be a simple cheap, available one.&lt;br /&gt;
  - Doesn&amp;#039;t really need super-accurate inter-second timing, we&amp;#039;re only going to display&lt;br /&gt;
    to the nearest second anyway.&lt;br /&gt;
  - Absolutely needs a display of some sort&lt;br /&gt;
  - Should be able to work with no network at all.  If wireless is available, to do FW updates or something, bonus.&lt;br /&gt;
  - Power usage is somewhat of a concern, though could start out using wall-wart power&lt;br /&gt;
  - A big 5&amp;quot; or 7&amp;quot; touch display is way overkill, but could display sun location, etc, and use touch for setup&lt;br /&gt;
  - Use GPS coords to pick local timezone.&lt;br /&gt;
  - OLED screen and batteries?&lt;br /&gt;
  - Could we get away with solar power?&lt;br /&gt;
  - low-power mode is a goal to get us off the plug&lt;br /&gt;
  - any way we can have it turn the display off when its not light out?  or when I&amp;#039;m not looking at it? :)&lt;br /&gt;
&lt;br /&gt;
Things to Display&lt;br /&gt;
-----------------&lt;br /&gt;
* Date &amp;amp; Time in several formats:&lt;br /&gt;
  - UT1&lt;br /&gt;
  - UTC&lt;br /&gt;
  - Unix&lt;br /&gt;
  - Local&lt;br /&gt;
  - MST&lt;br /&gt;
  - AST&lt;br /&gt;
* Number of satellites used in fix&lt;br /&gt;
* Battery power left&lt;br /&gt;
* Day of week (text) and month of year (text) and week of year (numeric, ISO)&lt;br /&gt;
* Time to sunset/since sunrise&lt;br /&gt;
* Temp/humidity/pressure&lt;br /&gt;
* latitude/longitude&lt;br /&gt;
* local time-zone&lt;br /&gt;
* DST active&lt;br /&gt;
&lt;br /&gt;
Things to Adjust&lt;br /&gt;
----------------&lt;br /&gt;
* Ideally nothing, other than date/time display preferences:&lt;br /&gt;
  - 12-hour/24-hour?&lt;br /&gt;
  - ISO formatting options?&lt;br /&gt;
  - which time choices (above) to display at all times&lt;br /&gt;
* Other localization settings &amp;amp; options&lt;br /&gt;
  - C/F for temp&lt;br /&gt;
  - Power-saving settings?&lt;br /&gt;
* Some way to initiate FW updates?&lt;br /&gt;
  - Would be cool if it would detect when my phone is making Wifi available, then:&lt;br /&gt;
     * connect to that&lt;br /&gt;
     * check git for FW updates (or somewhere)&lt;br /&gt;
     * check somewhere for OS and kernel updates&lt;br /&gt;
     * update itself if needed&lt;br /&gt;
     * reboot/restart app if needed&lt;br /&gt;
&lt;br /&gt;
Anything else to make available?&lt;br /&gt;
--------------------------------&lt;br /&gt;
* Maybe a calculator?  phone or laptop is more convenient, probably&lt;br /&gt;
* Some sort of calendar mode?  Again, for something like this, more than a glance, phone/laptop more convenient&lt;br /&gt;
* Something else I could see at a glance?  Home status?&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=Fernseher&amp;diff=106762</id>
		<title>Fernseher</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Fernseher&amp;diff=106762"/>
		<updated>2017-03-23T20:49:06Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Fernseher is an all encompassing set of scripts to solve all the world&amp;#039;s problems, determine whether P really does equal NP, make me lots of money, and make a fool of myself, all at once.  I imagine it will be useful to no one, do exactly what no one wants it to do, and be accused of murder and money laundering multiple times.  If it does what you want it to do, reconsider, because you are probably wrong.  It won&amp;#039;t even do what I want it to do, and I wrote the damn thing.&lt;br /&gt;
&lt;br /&gt;
In summation, your probably don&amp;#039;t really want this set of crap on your box, and if you put it on your box, it is likely that your computer will implode, and almost certain that all your base will belong to me.&lt;br /&gt;
&lt;br /&gt;
That said, I am using this wiki to keep track of ideas I have for the various components involved, what they do, what they should do, how to use them, how to improve them, and what will happen if you don&amp;#039;t use them with everything else.  I am also hoping to do some rudimentary interface design here for the various front ends, as well as backend database design so I know how its all supposed to go together.  I may also put any information I have on the various utilities I plan on using to interface with the tuner cards, as well as interfaces to play music and video, adjust channels, volume, use bittorrent, etc.  &lt;br /&gt;
&lt;br /&gt;
*Festina lente  (hurry slowly)&lt;br /&gt;
*Id est  (that is)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Backend/Server Components===&lt;br /&gt;
&lt;br /&gt;
*[[durchcoderd]]&lt;br /&gt;
*[[herrd]]&lt;br /&gt;
*[[rissd]]&lt;br /&gt;
*[[seherd]]&lt;br /&gt;
*[[unterhalterd]]&lt;br /&gt;
&lt;br /&gt;
===Frontend/Client Components===&lt;br /&gt;
&lt;br /&gt;
*[[nackt]]&lt;br /&gt;
*[[spieler]]&lt;br /&gt;
*[[wunscher]]&lt;br /&gt;
&lt;br /&gt;
===Database Design and Synchronization===&lt;br /&gt;
&lt;br /&gt;
*[[Tables]]&lt;br /&gt;
*[[Managed Objects]]&lt;br /&gt;
*[[Queues]]&lt;br /&gt;
*[[Synchronization]]&lt;br /&gt;
*[[Clients]]&lt;br /&gt;
&lt;br /&gt;
===Components to Harness===&lt;br /&gt;
&lt;br /&gt;
*[[libgpod]]&lt;br /&gt;
*[[vlc]]&lt;br /&gt;
*[[mplayer]]&lt;br /&gt;
*[[mpg123]]&lt;br /&gt;
*[[mencoder]]&lt;br /&gt;
*[[curses]]&lt;br /&gt;
*[[ajax]]&lt;br /&gt;
*[[firefox]]&lt;br /&gt;
*[[wiimote mouse]]&lt;br /&gt;
*[[tvshows from online]]&lt;br /&gt;
*[http://www.gnu.org/software/make/manual/make.html#Automatic-Prerequisites Auto deps for makefiles]&lt;br /&gt;
*[http://www.fftw.org/doc/Complex-One_002dDimensional-DFTs.html fftw tutorial]&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Discrete_Fourier_transform stuff on DFT]&lt;br /&gt;
*[http://www.grinninglizard.com/tinyxmldocs/index.html TinyXML]&lt;br /&gt;
&lt;br /&gt;
===Other Related Projects===&lt;br /&gt;
&lt;br /&gt;
*[[bittorrent]]&lt;br /&gt;
*[[blogging queue]]&lt;br /&gt;
*[[mpr stream capture]]&lt;br /&gt;
*[[photo management]]&lt;br /&gt;
*[[email grabber]]&lt;br /&gt;
*[[tag clouds]]&lt;br /&gt;
*[[remote control device]]&lt;br /&gt;
*[[dialup server system]]&lt;br /&gt;
*[[dvdlookup.org]]&lt;br /&gt;
*[[playlist]]&lt;br /&gt;
*[[slackpkg plus plus]]&lt;br /&gt;
*[[gkrellm replacement]]&lt;br /&gt;
*[[book cataloging]]&lt;br /&gt;
*[[some avr stuff]]&lt;br /&gt;
*[[modjs]]&lt;br /&gt;
*[[thoughts on avr event scheduling]]&lt;br /&gt;
*[[MIDI and the organ project]]&lt;br /&gt;
*[[some sess doc stuff]]&lt;br /&gt;
*[[generic document structure objects]]&lt;br /&gt;
*[[pennyworth]]&lt;br /&gt;
*[[awesome keyboard]]&lt;br /&gt;
*[[GPS clock]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Slackware resources===&lt;br /&gt;
*slackware.com&lt;br /&gt;
*slackbuilds.org&lt;br /&gt;
*kernel.org&lt;br /&gt;
*slackbook.org&lt;br /&gt;
*slackwiki.org&lt;br /&gt;
*sbopkg.org&lt;br /&gt;
*linuxquestions.org&lt;br /&gt;
*alienBOB&amp;#039;s wiki&lt;br /&gt;
*alienBOB&amp;#039;s slackbuilds&lt;br /&gt;
* ##slackware&lt;br /&gt;
* #slackbuilds&lt;br /&gt;
*slackware-annouce@slackware.com&lt;br /&gt;
*slackware-security@slackware.com&lt;br /&gt;
*slackbuilds-users@slackbuilds.org&lt;br /&gt;
*linux-kernel@vger.kernel.org&lt;br /&gt;
&lt;br /&gt;
===Stuff to get working on my computers===&lt;br /&gt;
*[[xvmc]]&lt;br /&gt;
*[[nis]]&lt;br /&gt;
*[[proper dhcp]]&lt;br /&gt;
*[[special fw on router]]&lt;br /&gt;
*[[distributed internal network]]&lt;br /&gt;
*[[vms to run]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=Thoughs_on_avr_event_scheduling&amp;diff=106761</id>
		<title>Thoughs on avr event scheduling</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Thoughs_on_avr_event_scheduling&amp;diff=106761"/>
		<updated>2017-03-22T15:38:55Z</updated>

		<summary type="html">&lt;p&gt;Admin: Admin moved page Thoughs on avr event scheduling to Thoughts on avr event scheduling: mispelled&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Thoughts on avr event scheduling]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=Thoughts_on_avr_event_scheduling&amp;diff=106760</id>
		<title>Thoughts on avr event scheduling</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Thoughts_on_avr_event_scheduling&amp;diff=106760"/>
		<updated>2017-03-22T15:38:55Z</updated>

		<summary type="html">&lt;p&gt;Admin: Admin moved page Thoughs on avr event scheduling to Thoughts on avr event scheduling: mispelled&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;For my reprap playground firmware, I need a better way to schedule events.  This will enable me to do g-code shorthand movement calls.  The general form will be&lt;br /&gt;
 int moveVect(dx, dy, dz, rampUpTime, initialSpeed, finalSpeed, rampDownTime)&lt;br /&gt;
dx, dy, dz is the motion vector relative to current position, given in mm.  rampUpTime and rampDownTime are given in seconds, and initialSpeed/finalSpeed are given in mm/s.  moveVect returns 0 if we were able to move all the way to the target location.  It returns 1 if we could not move all the way there because we hit an endstop.  It returns 2 if we could not move all the way there because we think we would have hit another edge (no endstop).&lt;br /&gt;
&lt;br /&gt;
To help us, we need to have steps per mm numbers for each axis (qx, qy, qz).  We also should have a stepping interval time (qt).  This is how long to actually have the motor coil energized.  This should either be small enough to run during the event, or large enough that a new event to de-energize can be scheduled and run.&lt;br /&gt;
&lt;br /&gt;
As we run through the moveVect() we determine a current speed by linearizing from 0 to initialSpeed over the rampUpTime interval, then linearizing to the finalSpeed over a calculated time it will take us to move in toto (could be tough..??), and finally linearizing back down to 0 over rampDownTime.  After getting the current speed (s), we find out velocity vector (v) by normalizing the motion vector and multiplying it by the speed.&lt;br /&gt;
 dh = sqrt(dx^2 + dy^2 + dz^2)&lt;br /&gt;
 v = (dx*s/dh, dy*s/dh, dz*s/dh)&lt;br /&gt;
&lt;br /&gt;
The next step events should be scheduled then at times in the future given by&lt;br /&gt;
 1/(vi*qi) - qt&lt;br /&gt;
for each axis.  This event simply steps the given axis by toggling the step line for qt seconds.&lt;br /&gt;
&lt;br /&gt;
Each step event needs an axis and a direction.  Associated with each move is a move control block, containing velocity vector information, acceleration vector information, and target location data, as well as info about if we stopped, and why.&lt;br /&gt;
At each event, we check endstops and position to determine if we have to stop, otherwise, we step, adjust that axis&amp;#039;s velecity information using the acceleration information for that axis, and schedule the next event for that axis.&lt;br /&gt;
&lt;br /&gt;
We can chain moves together in a list, and when one move is finished (all axis event chains have ceased, or we are on the last one), we pull up the next move control block and trigger its event chains for each axis.&lt;br /&gt;
&lt;br /&gt;
We&amp;#039;ll need to use one of the chip&amp;#039;s timers for our interrupt, and the interrupt should look at the next event in the event list, and if its timer has expired or will expire, we execute it and remove it from the list.  We then look at the next event in the list.  If its timer has now expired, we execute that one too. We keep doing this until we have no more events or we find one that needs to execute in the future.  We set our interrupt for that future time and exit.&lt;br /&gt;
&lt;br /&gt;
When somebody schedules a new event, we determine if the new event should fire after or before the first one in our current list.  If before, we put it in the list before the first item and reset the interrupt trigger time to our new event&amp;#039;s time.  If after, we put it in the list in the right spot and call it good.&lt;br /&gt;
&lt;br /&gt;
Scheduling an event and the checking to see if we need to run an event need to occur under an event list lock, so we don&amp;#039;t mess up our event list or the timer.  Just use a spin lock probably, and enable/disable interrupts around our check and set.&lt;br /&gt;
&lt;br /&gt;
== Move List ==&lt;br /&gt;
move list lock, next move ptr, next available id, plus list of move control blocks, each containing:&lt;br /&gt;
 type = 1(move)&lt;br /&gt;
 id&lt;br /&gt;
 status 0 not yet active, 1 in progress, 2 complete, at target, 3 complete, not at target&lt;br /&gt;
 link to next move&lt;br /&gt;
 x,y,z endstop/position status (0, ok, 1 max endstop, 2 min endstop, 3 max steps, 4 min steps)&lt;br /&gt;
 x,y,z target&lt;br /&gt;
 x,y,z velocity (current)&lt;br /&gt;
 x,y,z acceleration&lt;br /&gt;
 link to next move&lt;br /&gt;
&lt;br /&gt;
 type = 2(dwell)&lt;br /&gt;
 id&lt;br /&gt;
 status 0 not yet active, 1 in progress, 2 completed.&lt;br /&gt;
 link to next move&lt;br /&gt;
 dwell time&lt;br /&gt;
&lt;br /&gt;
When a move is completed, the old move control block is left on the list until it is removed (to check status, etc), but the next move in the list is started up immediately.  Some move functions:&lt;br /&gt;
 mid = moveDelta(dx, dy, dz, initial speed, final speed)&lt;br /&gt;
 mid = moveTo(x, y, z, initial speed, final speed)&lt;br /&gt;
 status = cancelMove(mid)&lt;br /&gt;
 mid = moveDwell(dwell time)&lt;br /&gt;
 void genMcb(delta?, x,y,z, ispeed, fspeed, buffer*)&lt;br /&gt;
&lt;br /&gt;
== Event Queue ==&lt;br /&gt;
event queue lock, next event ptr, next available id, plus list of event control blocks currently scheduled&lt;br /&gt;
 type = 0 nop&lt;br /&gt;
 time to fire&lt;br /&gt;
 id&lt;br /&gt;
 link to next event&lt;br /&gt;
 move after?&lt;br /&gt;
&lt;br /&gt;
 type = 1 step&lt;br /&gt;
 time to fire&lt;br /&gt;
 id&lt;br /&gt;
 link to next event&lt;br /&gt;
 axis&lt;br /&gt;
 move control block ptr&lt;br /&gt;
&lt;br /&gt;
 type = 2 run&lt;br /&gt;
 time to fire&lt;br /&gt;
 id&lt;br /&gt;
 link to next event&lt;br /&gt;
 function ptr to call (of type (void)(void*))&lt;br /&gt;
 ptr to pass to function when run&lt;br /&gt;
&lt;br /&gt;
 type = 3 move&lt;br /&gt;
 time to fire&lt;br /&gt;
 id&lt;br /&gt;
 link to next event&lt;br /&gt;
 number of mcbs in this event&lt;br /&gt;
 move control blocks to run in the future&lt;br /&gt;
&lt;br /&gt;
When an event is triggered, the event is discarded after being run.  Some event functions:&lt;br /&gt;
  eid = scheduleEvent(type, delta time, data ptr, data len) (eid = -1 means couldn&amp;#039;t schedule)&lt;br /&gt;
  status = cancelEvent(eid) (status = -1 means no such event)&lt;br /&gt;
  eid = scheduleFunction(delta time, func ptr, data)&lt;br /&gt;
  eid = scheduleMoveSequence(delta time, num moves, mcb*)&lt;br /&gt;
  eid = scheduleNop(delta time, move after?)&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=Fernseher&amp;diff=106759</id>
		<title>Fernseher</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Fernseher&amp;diff=106759"/>
		<updated>2017-03-21T23:21:09Z</updated>

		<summary type="html">&lt;p&gt;Admin: revert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Fernseher is an all encompassing set of scripts to solve all the world&amp;#039;s problems, determine whether P really does equal NP, make me lots of money, and make a fool of myself, all at once.  I imagine it will be useful to no one, do exactly what no one wants it to do, and be accused of murder and money laundering multiple times.  If it does what you want it to do, reconsider, because you are probably wrong.  It won&amp;#039;t even do what I want it to do, and I wrote the damn thing.&lt;br /&gt;
&lt;br /&gt;
In summation, your probably don&amp;#039;t really want this set of crap on your box, and if you put it on your box, it is likely that your computer will implode, and almost certain that all your base will belong to me.&lt;br /&gt;
&lt;br /&gt;
That said, I am using this wiki to keep track of ideas I have for the various components involved, what they do, what they should do, how to use them, how to improve them, and what will happen if you don&amp;#039;t use them with everything else.  I am also hoping to do some rudimentary interface design here for the various front ends, as well as backend database design so I know how its all supposed to go together.  I may also put any information I have on the various utilities I plan on using to interface with the tuner cards, as well as interfaces to play music and video, adjust channels, volume, use bittorrent, etc.  &lt;br /&gt;
&lt;br /&gt;
*Festina lente  (hurry slowly)&lt;br /&gt;
*Id est  (that is)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Backend/Server Components===&lt;br /&gt;
&lt;br /&gt;
*[[durchcoderd]]&lt;br /&gt;
*[[herrd]]&lt;br /&gt;
*[[rissd]]&lt;br /&gt;
*[[seherd]]&lt;br /&gt;
*[[unterhalterd]]&lt;br /&gt;
&lt;br /&gt;
===Frontend/Client Components===&lt;br /&gt;
&lt;br /&gt;
*[[nackt]]&lt;br /&gt;
*[[spieler]]&lt;br /&gt;
*[[wunscher]]&lt;br /&gt;
&lt;br /&gt;
===Database Design and Synchronization===&lt;br /&gt;
&lt;br /&gt;
*[[Tables]]&lt;br /&gt;
*[[Managed Objects]]&lt;br /&gt;
*[[Queues]]&lt;br /&gt;
*[[Synchronization]]&lt;br /&gt;
*[[Clients]]&lt;br /&gt;
&lt;br /&gt;
===Components to Harness===&lt;br /&gt;
&lt;br /&gt;
*[[libgpod]]&lt;br /&gt;
*[[vlc]]&lt;br /&gt;
*[[mplayer]]&lt;br /&gt;
*[[mpg123]]&lt;br /&gt;
*[[mencoder]]&lt;br /&gt;
*[[curses]]&lt;br /&gt;
*[[ajax]]&lt;br /&gt;
*[[firefox]]&lt;br /&gt;
*[[wiimote mouse]]&lt;br /&gt;
*[[tvshows from online]]&lt;br /&gt;
*[http://www.gnu.org/software/make/manual/make.html#Automatic-Prerequisites Auto deps for makefiles]&lt;br /&gt;
*[http://www.fftw.org/doc/Complex-One_002dDimensional-DFTs.html fftw tutorial]&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Discrete_Fourier_transform stuff on DFT]&lt;br /&gt;
*[http://www.grinninglizard.com/tinyxmldocs/index.html TinyXML]&lt;br /&gt;
&lt;br /&gt;
===Other Related Projects===&lt;br /&gt;
&lt;br /&gt;
*[[bittorrent]]&lt;br /&gt;
*[[blogging queue]]&lt;br /&gt;
*[[mpr stream capture]]&lt;br /&gt;
*[[photo management]]&lt;br /&gt;
*[[email grabber]]&lt;br /&gt;
*[[tag clouds]]&lt;br /&gt;
*[[remote control device]]&lt;br /&gt;
*[[dialup server system]]&lt;br /&gt;
*[[dvdlookup.org]]&lt;br /&gt;
*[[playlist]]&lt;br /&gt;
*[[slackpkg plus plus]]&lt;br /&gt;
*[[gkrellm replacement]]&lt;br /&gt;
*[[book cataloging]]&lt;br /&gt;
*[[some avr stuff]]&lt;br /&gt;
*[[modjs]]&lt;br /&gt;
*[[thoughts on avr event scheduling]]&lt;br /&gt;
*[[MIDI and the organ project]]&lt;br /&gt;
*[[some sess doc stuff]]&lt;br /&gt;
*[[generic document structure objects]]&lt;br /&gt;
*[[pennyworth]]&lt;br /&gt;
*[[awesome keyboard]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Slackware resources===&lt;br /&gt;
*slackware.com&lt;br /&gt;
*slackbuilds.org&lt;br /&gt;
*kernel.org&lt;br /&gt;
*slackbook.org&lt;br /&gt;
*slackwiki.org&lt;br /&gt;
*sbopkg.org&lt;br /&gt;
*linuxquestions.org&lt;br /&gt;
*alienBOB&amp;#039;s wiki&lt;br /&gt;
*alienBOB&amp;#039;s slackbuilds&lt;br /&gt;
* ##slackware&lt;br /&gt;
* #slackbuilds&lt;br /&gt;
*slackware-annouce@slackware.com&lt;br /&gt;
*slackware-security@slackware.com&lt;br /&gt;
*slackbuilds-users@slackbuilds.org&lt;br /&gt;
*linux-kernel@vger.kernel.org&lt;br /&gt;
&lt;br /&gt;
===Stuff to get working on my computers===&lt;br /&gt;
*[[xvmc]]&lt;br /&gt;
*[[nis]]&lt;br /&gt;
*[[proper dhcp]]&lt;br /&gt;
*[[special fw on router]]&lt;br /&gt;
*[[distributed internal network]]&lt;br /&gt;
*[[vms to run]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=Fernseher&amp;diff=106758</id>
		<title>Fernseher</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Fernseher&amp;diff=106758"/>
		<updated>2017-03-21T23:16:11Z</updated>

		<summary type="html">&lt;p&gt;Admin: Reverted edits by CerysVogel (talk) to last revision by BrookeV67cwkq&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;拉直板是很多女性朋友家居生活中常用的美发工具，只要使用来把头发弄卷进行造型的，那拉直板什么牌子好? [http://www.ghgvip.com GHG curl secret] 卷发器怎么选购?我们了解下：&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;卷发器什么牌子好?&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;　　1、沙宣VS(1954年创立于英国,美发工具产业璀璨明星,在顾客和市场上享有盛誉,宝洁公司授权美康雅国际贸易有限公司)&amp;lt;br&amp;gt;　　2、飞利浦PHILIPS(始创于1891年荷兰,世界上最大的电子公司之一,全球100个最具价值品牌,飞利浦电子(中国)投资有限公司)&amp;lt;br&amp;gt;　　3、松下Panasonic(于1918年日本,世界500强企业,世界品牌,大型跨国公司,全球最大的电子厂商之一,松下电器(中国)有限公司)&amp;lt;br&amp;gt;　　4、GHG(创立于美国,世界著名直发器卷发器品牌,享有极高声誉的拉直板品牌,深受造型师推崇的美发工具品牌,美国GHG公司)&amp;lt;br&amp;gt;　　5、博朗BRAUN(始创于1921年德国,宝洁公司旗下,小家电行业著名品牌,大型跨国集团,欧美高端市场品牌,德国博朗有限公司)&amp;lt;br&amp;gt;　　6、奔腾POVOS(上海市著名商标,高新技术企业,十大美发工具品牌,个人护理电器行业领先品牌,上海奔腾企业(集团)有限公司)&amp;lt;br&amp;gt;　　7、BaByliss PRO(创于1961年,全球专业美发造型工具生产制造商,欧洲顶级沙龙用美发工具品牌,美康雅国际贸易有限公司)&amp;lt;br&amp;gt;　　8、飞科FLYCO(上海市著名商标,参与剃须刀行业国家标准制订,集剃须刀及小家电研发制造销售的企业,浙江飞科集团有限公司)&amp;lt;br&amp;gt;　　9、康夫(广东省著名商标,集开发/设计/生产/营销于一体的电器企业,知名美发工具品牌,广东华能达电器有限公司)&amp;lt;br&amp;gt;　　10、谭木匠(上市公司,国内木质梳理用品行业领军品牌,最具价值品牌之一,拥有多项专利技术,谭木匠控股有限公司)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;家用卷发器的选购方法：&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;　　1、品牌：&amp;lt;br&amp;gt;　　目前市场上在售的家用卷发器品牌很多，价格从几十元到上千元不等。在选购时建议大家尽量选购大厂生产的名牌产品，并且注意一下产品的外包装是否注明生产厂家、产品型号等具体信息，避免选购到质量低劣的假冒产品。&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;　　2、外观：&amp;lt;br&amp;gt;　　无论选购哪个品牌的卷发器，检查产品外观都是必要的一个步骤。首先，直板夹的外观造型应该时尚小巧、易于抓握;另外，外观各个部件应该造型规整、接缝均匀紧密;第三，还要留意一下直发器的重量，通常质量较好的自动卷发器都会相对重一些。&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;　　3、材质：&amp;lt;br&amp;gt;　　观察自动卷发器关键部位的材质也是选购直发器的重要环节。建议大家选购卷发器表面为陶瓷釉面、陶瓷釉面光洁的优质产品，此类产品不但使用起来光滑顺洁、而且使用寿命长、易于打理。&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;　　直发器品牌及选购方法就和大家分享到这里了，希望能帮到大家，更多信息请继续关注我们。&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=MIDI_and_the_organ_project&amp;diff=106757</id>
		<title>MIDI and the organ project</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=MIDI_and_the_organ_project&amp;diff=106757"/>
		<updated>2017-03-21T23:02:31Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[http://sessrumnir.net/organs/trunk/ SVN trunk for organ code]&lt;br /&gt;
*[http://www.die-orgelseite.de/pfeifenarten_e.htm Interesting site for pipe shapes and sounds]&lt;br /&gt;
&lt;br /&gt;
*[[Pipe creation workflow]]&lt;br /&gt;
*[[Theoretical Pipe Variations]]&lt;br /&gt;
*[[Spectra]]&lt;br /&gt;
*[[Other stuff]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====MIDI and the organ====&lt;br /&gt;
MIDI standard is out there. Also good is the RTP-MIDI RFC, for putting MIDI data into a stream and whatnot.&lt;br /&gt;
&lt;br /&gt;
The basics, as I think we will be using them:&lt;br /&gt;
&lt;br /&gt;
Packet basics (we&amp;#039;ll only be using 3 byte packet forms):&lt;br /&gt;
&lt;br /&gt;
 1 &amp;lt;3: opcode&amp;gt; &amp;lt;4: channel&amp;gt; 0 &amp;lt;7: arg1&amp;gt; 0 &amp;lt;7: arg2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essentially, a status byte, with the high bit on (0x80-0xFF), and two argument bytes, with the high bit off (0x00-0x7F).&lt;br /&gt;
&lt;br /&gt;
opcodes of relevance:&lt;br /&gt;
*0x0: key off.  arg1 is the key number, arg2 is the velocity.  We will always use velocity of 0x40.&lt;br /&gt;
*0x1: key on. arg1 is the key number, arg2 is the velocity.  We will always use the velocity of 0x40.&lt;br /&gt;
*0x3: control change.  arg1 is the control number (0x01 is modulation wheel, 0x0B is the expression pedal), arg2 is the new control value, from 0x00 - 0x7F (Note:  If we need more than 127 steps, add 0x20 to the control number, and thats the control number to use to send the least significant 7-bits of the value.  The value sent with the base control number is considered to be the most significant 7-bits of the value.  This ensures that if just read the base control number, you set the control to approximately the correct percentage of fully off/fully on.)&lt;br /&gt;
&lt;br /&gt;
For channels, we will use:&lt;br /&gt;
*0x0: Great (Solo) Manual&lt;br /&gt;
*0x1: Swell (Accompaniment) Manual&lt;br /&gt;
*0x2: Choir (below Great) Manual, if present&lt;br /&gt;
*0x3: Solo (above Swell) Manual, if present&lt;br /&gt;
*0x4: Echo (above Solo) Manual, if present&lt;br /&gt;
*0x5: Third Pedalboard, if present, or the auxilary stop channel, covering additional stops for all manuals and pedals.&lt;br /&gt;
*0x6: Second Pedalboard, if present, or the main stop channel, covering all stops for all manuals and pedals.&lt;br /&gt;
*0x7: Main Pedalboard&lt;br /&gt;
*0x8: Great stops only&lt;br /&gt;
*0x9: Swell stops only&lt;br /&gt;
*0xA: Choir stops only&lt;br /&gt;
*0xB: Solo stops only&lt;br /&gt;
*0xC: Echo stops only&lt;br /&gt;
*0xD: Third Pedalboard stops only&lt;br /&gt;
*0xE: Second Pedalboard stops only&lt;br /&gt;
*0xF: Main Pedalboard stops only&lt;br /&gt;
&lt;br /&gt;
Our initial organ will only use channels 0x0-0x1, 0x6-0x7.&lt;br /&gt;
&lt;br /&gt;
Each keyboard channel (0x0-0x7) gets its own control set.  For our organ, where the modulation wheel and expression pedal control all divisions equally, each control change gets sent for each active channel... or maybe just for great, and the software will figure out that they control all the stuff.  Note, we may not hook up the modulation wheel when we begin.  It&amp;#039;d be kinda a lot harder to make work right, I think.&lt;br /&gt;
&lt;br /&gt;
We will be building channel combination boards, that take an enable and a sub-channel address, and read back the contents of the addressed buffer.  4 bits of address gets 16 buffers.  At 8 bits per buffer, thats 128 inputs for each channel.  That matches with midi&amp;#039;s numbering scheme.  Alternatively, if you take the LSB of the true channel, and feed it to the 4th address bit of the channel board, and only decode the top 3 bits of the channel to determine channel board enable, you can duplex your channel boards, since we will only be using under 64 inputs per channel.  The AVR firmware will have an MIDI offset value for each channel to add to the number received from the board before sending as part of a MIDI command. For most subchannels, this will be 36.  Will probably just use an offset of 0 for the stop channels.&lt;br /&gt;
&lt;br /&gt;
Using the split channel board design, we only need two channel boards for our organ.  The main board will be designed to use the channel boards in split mode, and will never probably use the split-mode stop channels (0x8-0xF), so it will only have 4 plugs for channel boards, 0x0-0x1, 0x2-0x3, 0x4-0x5, and 0x6-0x7.  The initial organ will only use the first and last of these plugs, so we don&amp;#039;t even need to populate the board positions for the other channel boards.&lt;br /&gt;
&lt;br /&gt;
Also, I think we might want to put all the switch pull-up resistors on the manuals themselves, soldered to the key tabs.  This will eliminate a lot of crap on the boards, and keep the board design uniform, since the different keys will need different pull-ups.  The manuals, with their 5k internal resistance, will need 50k (or so) pull-ups to 5V, and the pedals and stops, with no internal resistance, will need just 10k (or so) pull-ups to 5V.  Each manual will get a separate power and ground plug for the pull-ups and grounds, so the connectors for the keys don&amp;#039;t need a pin for ground or power, I don&amp;#039;t think... Though if there is room, I guess we could send it along there, too.  Can&amp;#039;t hurt anything, provided the wires support enough current for the crazy case of all the stop pulled or keys pressed or something.  Given a max of 64 inputs to a half-channel, and only 61 keys on a full manual, we can use 2x36 pin connectors for the manuals, and 1x36 pin connector for the pedalboards, and 1x36 pin connector for the stop boards.  Thats 6 total 36 pin connectors, male and female, solder cup and through-hole.&lt;br /&gt;
&lt;br /&gt;
Channel board to main board connectors will have an 8-bit data bus, 4-bit address bus, a power, ground, enable, and identify(?) pins (16 total).  Should be able to use IDC connectors and ribbon cable here.&lt;br /&gt;
&lt;br /&gt;
===Simple algorithm for key change detection===&lt;br /&gt;
After reading a byte from the buffers, we xor it with the copy of the byte from last time, then store the new version in the copy location.  We then start looking at the lsb of the xor&amp;#039;ed byte.  If its a 1, we send a key on if the lsb of the read byte is a 1, and a key off if the lsb of the read byte is a 0.  We then shift right and do that again.  We do that 8 times, once for each bit in that byte.  Then we can move on to the next valid address for that channel, write out the address, read back the buffer value, xor, store, analyze, etc.  Note, we can speed this up by checking if the xor byte is identically 0x00, in which case we don&amp;#039;t have to analyze it, it hasn&amp;#039;t changed.  This will be the usual case!  Only occasionally (in sample time), will things change, and usually only on one bit, and thus one buffer, amongst all the channels and buffers.  This should help us keep up to speed.&lt;br /&gt;
&lt;br /&gt;
Once we are done reading all the channel board buffers, we can check the expression pedals and other variable controls for new values, and possibly send control change events.  After all this, we actually send the MIDI bytes as we have determined them to need to be for this time around, and go to sleep until our next sample time.&lt;br /&gt;
&lt;br /&gt;
Not sure what the latency of the serial to USB conversion is in FTDI, but it could be as bad as a single byte in a single USB message....  Anyway, we want to build a buffer of bytes that need to get send over each sample time, with the RTP-MIDI spec used to make it a stream type thing.  This means: packet length, &amp;quot;timestamp&amp;quot;, first MIDI event, relative timestamps (should all be zero), subsequent MIDI events.&lt;br /&gt;
&lt;br /&gt;
===Chips to use===&lt;br /&gt;
*16x? 74HCT540  for the octal tri-state buffers, inverting (0.54, 20 pin dip)&lt;br /&gt;
*1x? 74HCT138  for 1 to 8 decoder (0.40, 16 pin dip)&lt;br /&gt;
*1x? 74HCT154  for 1 to 16 decoder (0.80, 24 pin dip)&lt;br /&gt;
*1x ATMega164P-20P for AVR controller, 20MHz, (4.82, 40 pin dip)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Stuff from the old Google Notebook stuff===&lt;br /&gt;
====Pin layout====&lt;br /&gt;
*8 data (D7-D0)&lt;br /&gt;
*8 address (A7-A0)&lt;br /&gt;
*5 inverted address (/A7-/A3)&lt;br /&gt;
*1 power (V)&lt;br /&gt;
*1 ground (G)&lt;br /&gt;
*1 card select (S)&lt;br /&gt;
*1 R/W (R)&lt;br /&gt;
*1 Presence detect (P)&lt;br /&gt;
   1   2   3   4   5   6   7   8   9  10  11  12  13&lt;br /&gt;
 1 V   S   R   P   G   A0-------A2 A3--------------A7&lt;br /&gt;
 2 D0---------------Data--------D7 /A3------------/A7&lt;br /&gt;
&lt;br /&gt;
====Alternative Input Detection====&lt;br /&gt;
Using 40pin AVR, we can use a lot of digital inputs directly to the AVR.  We have to use some for normal things.  On the slave:&lt;br /&gt;
*Vcc&lt;br /&gt;
*Gnd&lt;br /&gt;
*Reset&lt;br /&gt;
*XTAL1&lt;br /&gt;
*XTAL2&lt;br /&gt;
*UART RX (all tied to CNTR TX)&lt;br /&gt;
*UART TX (all tied to MIDI out + CNTR RX)&lt;br /&gt;
*RTS&lt;br /&gt;
*CTS&lt;br /&gt;
Thats 9 pins, so 31 are left for digital inputs for keys/stops (per controller).&lt;br /&gt;
&lt;br /&gt;
On the master (CNTR):&lt;br /&gt;
*Vcc&lt;br /&gt;
*Gnd&lt;br /&gt;
*Reset&lt;br /&gt;
*XTAL1&lt;br /&gt;
*XTAL2&lt;br /&gt;
*UART1 RX (tied to all Slave TXs)&lt;br /&gt;
*UART1 TX (tied to all Slave RXs)&lt;br /&gt;
*MOSI&lt;br /&gt;
*MISO&lt;br /&gt;
*SCK&lt;br /&gt;
*UART2 RX (from host)&lt;br /&gt;
*UART2 TX (to host)&lt;br /&gt;
Thats 12 pins, so 28 are left for RTS/CTS controls for each slave.  That means a max of 14 slaves.  However, if we use some ADCs on the master for analog controls, we might lose some possible slaves.  Or, the analog controls could be fed to a slave controller, or a dedicated controller.&lt;br /&gt;
&lt;br /&gt;
If we have what you might hope would be a max config:&lt;br /&gt;
*5 manuals@61 keys is 2 slaves/manual, or 10 max&lt;br /&gt;
*1 pedalboard@30/32 keys is 1 slaves/pedalboard, or 1 max  (Note: 32 wouldn&amp;#039;t fit...)&lt;br /&gt;
*1 set of stops@60 stops or so is 2 slaves/stop set, or 2 max&lt;br /&gt;
That gives us about 13 boards.  Maybe the last slave could be used for more stops, or analog controls.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=Fernseher&amp;diff=106646</id>
		<title>Fernseher</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Fernseher&amp;diff=106646"/>
		<updated>2014-09-22T01:07:35Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Fernseher is an all encompassing set of scripts to solve all the world&amp;#039;s problems, determine whether P really does equal NP, make me lots of money, and make a fool of myself, all at once.  I imagine it will be useful to no one, do exactly what no one wants it to do, and be accused of murder and money laundering multiple times.  If it does what you want it to do, reconsider, because you are probably wrong.  It won&amp;#039;t even do what I want it to do, and I wrote the damn thing.&lt;br /&gt;
&lt;br /&gt;
In summation, your probably don&amp;#039;t really want this set of crap on your box, and if you put it on your box, it is likely that your computer will implode, and almost certain that all your base will belong to me.&lt;br /&gt;
&lt;br /&gt;
That said, I am using this wiki to keep track of ideas I have for the various components involved, what they do, what they should do, how to use them, how to improve them, and what will happen if you don&amp;#039;t use them with everything else.  I am also hoping to do some rudimentary interface design here for the various front ends, as well as backend database design so I know how its all supposed to go together.  I may also put any information I have on the various utilities I plan on using to interface with the tuner cards, as well as interfaces to play music and video, adjust channels, volume, use bittorrent, etc.  &lt;br /&gt;
&lt;br /&gt;
*Festina lente  (hurry slowly)&lt;br /&gt;
*Id est  (that is)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Backend/Server Components===&lt;br /&gt;
&lt;br /&gt;
*[[durchcoderd]]&lt;br /&gt;
*[[herrd]]&lt;br /&gt;
*[[rissd]]&lt;br /&gt;
*[[seherd]]&lt;br /&gt;
*[[unterhalterd]]&lt;br /&gt;
&lt;br /&gt;
===Frontend/Client Components===&lt;br /&gt;
&lt;br /&gt;
*[[nackt]]&lt;br /&gt;
*[[spieler]]&lt;br /&gt;
*[[wunscher]]&lt;br /&gt;
&lt;br /&gt;
===Database Design and Synchronization===&lt;br /&gt;
&lt;br /&gt;
*[[Tables]]&lt;br /&gt;
*[[Managed Objects]]&lt;br /&gt;
*[[Queues]]&lt;br /&gt;
*[[Synchronization]]&lt;br /&gt;
*[[Clients]]&lt;br /&gt;
&lt;br /&gt;
===Components to Harness===&lt;br /&gt;
&lt;br /&gt;
*[[libgpod]]&lt;br /&gt;
*[[vlc]]&lt;br /&gt;
*[[mplayer]]&lt;br /&gt;
*[[mpg123]]&lt;br /&gt;
*[[mencoder]]&lt;br /&gt;
*[[curses]]&lt;br /&gt;
*[[ajax]]&lt;br /&gt;
*[[firefox]]&lt;br /&gt;
*[[wiimote mouse]]&lt;br /&gt;
*[[tvshows from online]]&lt;br /&gt;
*[http://www.gnu.org/software/make/manual/make.html#Automatic-Prerequisites Auto deps for makefiles]&lt;br /&gt;
*[http://www.fftw.org/doc/Complex-One_002dDimensional-DFTs.html fftw tutorial]&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Discrete_Fourier_transform stuff on DFT]&lt;br /&gt;
*[http://www.grinninglizard.com/tinyxmldocs/index.html TinyXML]&lt;br /&gt;
&lt;br /&gt;
===Other Related Projects===&lt;br /&gt;
&lt;br /&gt;
*[[bittorrent]]&lt;br /&gt;
*[[blogging queue]]&lt;br /&gt;
*[[mpr stream capture]]&lt;br /&gt;
*[[photo management]]&lt;br /&gt;
*[[email grabber]]&lt;br /&gt;
*[[tag clouds]]&lt;br /&gt;
*[[remote control device]]&lt;br /&gt;
*[[dialup server system]]&lt;br /&gt;
*[[dvdlookup.org]]&lt;br /&gt;
*[[playlist]]&lt;br /&gt;
*[[slackpkg plus plus]]&lt;br /&gt;
*[[gkrellm replacement]]&lt;br /&gt;
*[[book cataloging]]&lt;br /&gt;
*[[some avr stuff]]&lt;br /&gt;
*[[modjs]]&lt;br /&gt;
*[[thoughts on avr event scheduling]]&lt;br /&gt;
*[[MIDI and the organ project]]&lt;br /&gt;
*[[some sess doc stuff]]&lt;br /&gt;
*[[generic document structure objects]]&lt;br /&gt;
*[[pennyworth]]&lt;br /&gt;
*[[awesome keyboard]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Slackware resources===&lt;br /&gt;
*slackware.com&lt;br /&gt;
*slackbuilds.org&lt;br /&gt;
*kernel.org&lt;br /&gt;
*slackbook.org&lt;br /&gt;
*slackwiki.org&lt;br /&gt;
*sbopkg.org&lt;br /&gt;
*linuxquestions.org&lt;br /&gt;
*alienBOB&amp;#039;s wiki&lt;br /&gt;
*alienBOB&amp;#039;s slackbuilds&lt;br /&gt;
* ##slackware&lt;br /&gt;
* #slackbuilds&lt;br /&gt;
*slackware-annouce@slackware.com&lt;br /&gt;
*slackware-security@slackware.com&lt;br /&gt;
*slackbuilds-users@slackbuilds.org&lt;br /&gt;
*linux-kernel@vger.kernel.org&lt;br /&gt;
&lt;br /&gt;
===Stuff to get working on my computers===&lt;br /&gt;
*[[xvmc]]&lt;br /&gt;
*[[nis]]&lt;br /&gt;
*[[proper dhcp]]&lt;br /&gt;
*[[special fw on router]]&lt;br /&gt;
*[[distributed internal network]]&lt;br /&gt;
*[[vms to run]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=Fernseher&amp;diff=106494</id>
		<title>Fernseher</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Fernseher&amp;diff=106494"/>
		<updated>2014-09-22T00:44:38Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Fernseher is an all encompassing set of scripts to solve all the world&amp;#039;s problems, determine whether P really does equal NP, make me lots of money, and make a fool of myself, all at once.  I imagine it will be useful to no one, do exactly what no one wants it to do, and be accused of murder and money laundering multiple times.  If it does what you want it to do, reconsider, because you are probably wrong.  It won&amp;#039;t even do what I want it to do, and I wrote the damn thing.&lt;br /&gt;
&lt;br /&gt;
In summation, your probably don&amp;#039;t really want this set of crap on your box, and if you put it on your box, it is likely that your computer will implode, and almost certain that all your base will belong to me.&lt;br /&gt;
&lt;br /&gt;
That said, I am using this wiki to keep track of ideas I have for the various components involved, what they do, what they should do, how to use them, how to improve them, and what will happen if you don&amp;#039;t use them with everything else.  I am also hoping to do some rudimentary interface design here for the various front ends, as well as backend database design so I know how its all supposed to go together.  I may also put any information I have on the various utilities I plan on using to interface with the tuner cards, as well as interfaces to play music and video, adjust channels, volume, use bittorrent, etc.  &lt;br /&gt;
&lt;br /&gt;
*Festina lente  (hurry slowly)&lt;br /&gt;
*Id est  (that is)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Backend/Server Components===&lt;br /&gt;
&lt;br /&gt;
*[[durchcoderd]]&lt;br /&gt;
*[[herrd]]&lt;br /&gt;
*[[rissd]]&lt;br /&gt;
*[[seherd]]&lt;br /&gt;
*[[unterhalterd]]&lt;br /&gt;
&lt;br /&gt;
===Frontend/Client Components===&lt;br /&gt;
&lt;br /&gt;
*[[nackt]]&lt;br /&gt;
*[[spieler]]&lt;br /&gt;
*[[wunscher]]&lt;br /&gt;
&lt;br /&gt;
===Database Design and Synchronization===&lt;br /&gt;
&lt;br /&gt;
*[[Tables]]&lt;br /&gt;
*[[Managed Objects]]&lt;br /&gt;
*[[Queues]]&lt;br /&gt;
*[[Synchronization]]&lt;br /&gt;
*[[Clients]]&lt;br /&gt;
&lt;br /&gt;
===Components to Harness===&lt;br /&gt;
&lt;br /&gt;
*[[libgpod]]&lt;br /&gt;
*[[vlc]]&lt;br /&gt;
*[[mplayer]]&lt;br /&gt;
*[[mpg123]]&lt;br /&gt;
*[[mencoder]]&lt;br /&gt;
*[[curses]]&lt;br /&gt;
*[[ajax]]&lt;br /&gt;
*[[firefox]]&lt;br /&gt;
*[[wiimote mouse]]&lt;br /&gt;
*[[tvshows from online]]&lt;br /&gt;
*[http://www.gnu.org/software/make/manual/make.html#Automatic-Prerequisites Auto deps for makefiles]&lt;br /&gt;
*[http://www.fftw.org/doc/Complex-One_002dDimensional-DFTs.html fftw tutorial]&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Discrete_Fourier_transform stuff on DFT]&lt;br /&gt;
*[http://www.grinninglizard.com/tinyxmldocs/index.html TinyXML]&lt;br /&gt;
&lt;br /&gt;
===Other Related Projects===&lt;br /&gt;
&lt;br /&gt;
*[[bittorrent]]&lt;br /&gt;
*[[blogging queue]]&lt;br /&gt;
*[[mpr stream capture]]&lt;br /&gt;
*[[photo management]]&lt;br /&gt;
*[[email grabber]]&lt;br /&gt;
*[[tag clouds]]&lt;br /&gt;
*[[remote control device]]&lt;br /&gt;
*[[dialup server system]]&lt;br /&gt;
*[[dvdlookup.org]]&lt;br /&gt;
*[[playlist]]&lt;br /&gt;
*[[slackpkg plus plus]]&lt;br /&gt;
*[[gkrellm replacement]]&lt;br /&gt;
*[[book cataloging]]&lt;br /&gt;
*[[some avr stuff]]&lt;br /&gt;
*[[modjs]]&lt;br /&gt;
*[[thoughts on avr event scheduling]]&lt;br /&gt;
*[[MIDI and the organ project]]&lt;br /&gt;
*[[some sess doc stuff]]&lt;br /&gt;
*[[generic document structure objects]]&lt;br /&gt;
*[[pennyworth]]&lt;br /&gt;
*[[awesome keyboard]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Slackware resources===&lt;br /&gt;
*slackware.com&lt;br /&gt;
*slackbuilds.org&lt;br /&gt;
*kernel.org&lt;br /&gt;
*slackbook.org&lt;br /&gt;
*slackwiki.org&lt;br /&gt;
*sbopkg.org&lt;br /&gt;
*linuxquestions.org&lt;br /&gt;
*alienBOB&amp;#039;s wiki&lt;br /&gt;
*alienBOB&amp;#039;s slackbuilds&lt;br /&gt;
* ##slackware&lt;br /&gt;
* #slackbuilds&lt;br /&gt;
*slackware-annouce@slackware.com&lt;br /&gt;
*slackware-security@slackware.com&lt;br /&gt;
*slackbuilds-users@slackbuilds.org&lt;br /&gt;
*linux-kernel@vger.kernel.org&lt;br /&gt;
&lt;br /&gt;
===Stuff to get working on my computers===&lt;br /&gt;
*[[xvmc]]&lt;br /&gt;
*[[nis]]&lt;br /&gt;
*[[proper dhcp]]&lt;br /&gt;
*[[special fw on router]]&lt;br /&gt;
*[[distributed internal network]]&lt;br /&gt;
*[[vms to run]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=Vms_to_run&amp;diff=2169</id>
		<title>Vms to run</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Vms_to_run&amp;diff=2169"/>
		<updated>2011-03-16T22:44:04Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;#039;===Client Hosts=== External hosts (coming in through external network) *work laptop at work *web clients *friends externally trying to access friend mirror services/distributed s…&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Client Hosts===&lt;br /&gt;
External hosts (coming in through external network)&lt;br /&gt;
*work laptop at work&lt;br /&gt;
*web clients&lt;br /&gt;
*friends externally trying to access friend mirror services/distributed storage&lt;br /&gt;
&lt;br /&gt;
Guest hosts&lt;br /&gt;
*friends that come over, etc. (laptops, phones, tablets)&lt;br /&gt;
&lt;br /&gt;
portable hosts&lt;br /&gt;
*my phones&lt;br /&gt;
*my pdas&lt;br /&gt;
*my wii?&lt;br /&gt;
*my tablets&lt;br /&gt;
*my ereaders&lt;br /&gt;
*my ipods&lt;br /&gt;
&lt;br /&gt;
laptop hosts&lt;br /&gt;
*normal laptop&lt;br /&gt;
*work laptop at home&lt;br /&gt;
*shop laptop&lt;br /&gt;
&lt;br /&gt;
media player hosts&lt;br /&gt;
*living room (video+music)&lt;br /&gt;
*library (video+music)&lt;br /&gt;
*shop (music)&lt;br /&gt;
*bedroom (music) &lt;br /&gt;
&lt;br /&gt;
controller hosts&lt;br /&gt;
*extremely limited purpose devices on the network to control one thing (such as hydroponics, or thermostat stuff)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Server Hosts===&lt;br /&gt;
*file serving (nfs)&lt;br /&gt;
*network services (nis, dhcp, boot images, routing, config data)&lt;br /&gt;
*house control/monitoring (webcams, internal/external environment sense, thermostat, garage door control/sense, sump pump sense, computer temps/stats, external rain barrel control)&lt;br /&gt;
*media streaming (vlc and mpd)&lt;br /&gt;
*printer/scanner/reprap&lt;br /&gt;
*internal mysql&lt;br /&gt;
*internal web&lt;br /&gt;
*internal svn&lt;br /&gt;
*external mysql&lt;br /&gt;
*external web&lt;br /&gt;
*external svn&lt;br /&gt;
*external mirrors (kernels, slackware, slackbuilds, alienbob, package sources)&lt;br /&gt;
*slackware current testing&lt;br /&gt;
*slackware package testing&lt;br /&gt;
*friend mirrors&lt;br /&gt;
*friend shared media&lt;br /&gt;
*transcode, compile, and processing server&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Networks===&lt;br /&gt;
*external&lt;br /&gt;
**internet, mostly untrusted.  routed to external stuff, friend mirrors/shared media, and (if trusted) printer stuff, media streaming, and house control.&lt;br /&gt;
*modem to gateway&lt;br /&gt;
**not really used, but its there.  actually might include the charter upstream port as well?&lt;br /&gt;
**internal dmz network&lt;br /&gt;
**network used to expose extern&lt;br /&gt;
*internal infrastructure network&lt;br /&gt;
**network used internally for flows that should just happen behind the scenes that me as a user never really needs to access directly (only through an external physical device interface, or some proxy webpage or something)&lt;br /&gt;
*internal usage network&lt;br /&gt;
**my laptops, allowing access to internal services where needed, but not more than that&lt;br /&gt;
*guest internal network&lt;br /&gt;
**when friends come over&lt;br /&gt;
**my own portable devices&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=Fernseher&amp;diff=2168</id>
		<title>Fernseher</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Fernseher&amp;diff=2168"/>
		<updated>2011-03-16T22:35:16Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Fernseher is an all encompassing set of scripts to solve all the world&amp;#039;s problems, determine whether P really does equal NP, make me lots of money, and make a fool of myself, all at once.  I imagine it will be useful to no one, do exactly what no one wants it to do, and be accused of murder and money laundering multiple times.  If it does what you want it to do, reconsider, because you are probably wrong.  It won&amp;#039;t even do what I want it to do, and I wrote the damn thing.&lt;br /&gt;
&lt;br /&gt;
In summation, your probably don&amp;#039;t really want this set of crap on your box, and if you put it on your box, it is likely that your computer will implode, and almost certain that all your base will belong to me.&lt;br /&gt;
&lt;br /&gt;
That said, I am using this wiki to keep track of ideas I have for the various components involved, what they do, what they should do, how to use them, how to improve them, and what will happen if you don&amp;#039;t use them with everything else.  I am also hoping to do some rudimentary interface design here for the various front ends, as well as backend database design so I know how its all supposed to go together.  I may also put any information I have on the various utilities I plan on using to interface with the tuner cards, as well as interfaces to play music and video, adjust channels, volume, use bittorrent, etc.  &lt;br /&gt;
&lt;br /&gt;
*Festina lente  (hurry slowly)&lt;br /&gt;
*Id est  (that is)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Backend/Server Components===&lt;br /&gt;
&lt;br /&gt;
*[[durchcoderd]]&lt;br /&gt;
*[[herrd]]&lt;br /&gt;
*[[rissd]]&lt;br /&gt;
*[[seherd]]&lt;br /&gt;
*[[unterhalterd]]&lt;br /&gt;
&lt;br /&gt;
===Frontend/Client Components===&lt;br /&gt;
&lt;br /&gt;
*[[nackt]]&lt;br /&gt;
*[[spieler]]&lt;br /&gt;
*[[wunscher]]&lt;br /&gt;
&lt;br /&gt;
===Database Design and Synchronization===&lt;br /&gt;
&lt;br /&gt;
*[[Tables]]&lt;br /&gt;
*[[Managed Objects]]&lt;br /&gt;
*[[Queues]]&lt;br /&gt;
*[[Synchronization]]&lt;br /&gt;
*[[Clients]]&lt;br /&gt;
&lt;br /&gt;
===Components to Harness===&lt;br /&gt;
&lt;br /&gt;
*[[libgpod]]&lt;br /&gt;
*[[vlc]]&lt;br /&gt;
*[[mplayer]]&lt;br /&gt;
*[[mpg123]]&lt;br /&gt;
*[[mencoder]]&lt;br /&gt;
*[[curses]]&lt;br /&gt;
*[[ajax]]&lt;br /&gt;
*[[firefox]]&lt;br /&gt;
*[[wiimote mouse]]&lt;br /&gt;
*[[tvshows from online]]&lt;br /&gt;
*[http://www.gnu.org/software/make/manual/make.html#Automatic-Prerequisites Auto deps for makefiles]&lt;br /&gt;
*[http://www.fftw.org/doc/Complex-One_002dDimensional-DFTs.html fftw tutorial]&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Discrete_Fourier_transform stuff on DFT]&lt;br /&gt;
*[http://www.grinninglizard.com/tinyxmldocs/index.html TinyXML]&lt;br /&gt;
&lt;br /&gt;
===Other Related Projects===&lt;br /&gt;
&lt;br /&gt;
*[[bittorrent]]&lt;br /&gt;
*[[blogging queue]]&lt;br /&gt;
*[[mpr stream capture]]&lt;br /&gt;
*[[photo management]]&lt;br /&gt;
*[[email grabber]]&lt;br /&gt;
*[[tag clouds]]&lt;br /&gt;
*[[remote control device]]&lt;br /&gt;
*[[dialup server system]]&lt;br /&gt;
*[[dvdlookup.org]]&lt;br /&gt;
*[[playlist]]&lt;br /&gt;
*[[slackpkg plus plus]]&lt;br /&gt;
*[[gkrellm replacement]]&lt;br /&gt;
*[[book cataloging]]&lt;br /&gt;
*[[some avr stuff]]&lt;br /&gt;
*[[modjs]]&lt;br /&gt;
*[[thoughts on avr event scheduling]]&lt;br /&gt;
*[[MIDI and the organ project]]&lt;br /&gt;
*[[some sess doc stuff]]&lt;br /&gt;
*[[generic document structure objects]]&lt;br /&gt;
*[[pennyworth]]&lt;br /&gt;
*[[awesome keyboard]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Slackware resources===&lt;br /&gt;
*slackware.com&lt;br /&gt;
*slackbuilds.org&lt;br /&gt;
*kernel.org&lt;br /&gt;
*slackbook.org&lt;br /&gt;
*slackwiki.org&lt;br /&gt;
*sbopkg.org&lt;br /&gt;
*linuxquestions.org&lt;br /&gt;
*alienBOB&amp;#039;s wiki&lt;br /&gt;
*alienBOB&amp;#039;s slackbuilds&lt;br /&gt;
* ##slackware&lt;br /&gt;
* #slackbuilds&lt;br /&gt;
*slackware-annouce@slackware.com&lt;br /&gt;
*slackware-security@slackware.com&lt;br /&gt;
*slackbuilds-users@slackbuilds.org&lt;br /&gt;
*linux-kernel@vger.kernel.org&lt;br /&gt;
&lt;br /&gt;
===Stuff to get working on my computers===&lt;br /&gt;
*[[xvmc]]&lt;br /&gt;
*[[nis]]&lt;br /&gt;
*[[proper dhcp]]&lt;br /&gt;
*[[special fw on router]]&lt;br /&gt;
*[[distributed internal network]]&lt;br /&gt;
*[[vms to run]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=Awesome_keyboard&amp;diff=2167</id>
		<title>Awesome keyboard</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Awesome_keyboard&amp;diff=2167"/>
		<updated>2011-03-16T22:33:08Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;#039;New keyboard kinda based on old space-cadet type keyboards:  Each letter key has several shiftables:  base letter, shift+letter (capitalization), front+letter (greek, etc), front…&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;New keyboard kinda based on old space-cadet type keyboards:&lt;br /&gt;
&lt;br /&gt;
Each letter key has several shiftables:  base letter, shift+letter (capitalization), front+letter (greek, etc), front+shift+letter (capital greek, etc), top+letter&lt;br /&gt;
&lt;br /&gt;
Bucky bit keys:  control, meta, hyper, super  (alt, esc, menu?)&lt;br /&gt;
&lt;br /&gt;
Perhaps some compose type key?&lt;br /&gt;
Perhaps some generic unicode numeric key?  Maybe some common actual unicode keys?&lt;br /&gt;
&lt;br /&gt;
Maybe the bucky bit keys can be organ type pedals?&lt;br /&gt;
&lt;br /&gt;
Be sure to include a numeric keypad (always in numlock mode) with hexadecimal digits A-F included.&lt;br /&gt;
Probably don&amp;#039;t need PrtSc, SysRq, Pause, Break, ScrollLock, NumLock&lt;br /&gt;
&lt;br /&gt;
Function keys can stay, I guess. Though I probably won&amp;#039;t use them much.&lt;br /&gt;
&lt;br /&gt;
Can I use both the keyboard/keypad HID stuff as well as the unicode HID stuff?&lt;br /&gt;
&lt;br /&gt;
Perhaps map the Ctrl/alt/shift/menu keys to always be left hand side keys, then use the right hand side keys to mean the new stuff: front, top, meta, hyper, super (may not be able to fit all of these...)&lt;br /&gt;
&lt;br /&gt;
In unicode mode, the none, shift, front, top, ctrl, esc can directly use the unicode equivalents (ctrl uses C0, esc uses C1)  Not sure what to do here with alt, menu, meta, hyper, and super.  Maybe some user defined Cx area?  If so, make sure there is room for extra ctrl/esc with all my extra letters, as well as shifted fronted, topped versions and combinations of everything?  Wow.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=Fernseher&amp;diff=2166</id>
		<title>Fernseher</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Fernseher&amp;diff=2166"/>
		<updated>2011-03-16T22:32:02Z</updated>

		<summary type="html">&lt;p&gt;Admin: /* Other Related Projects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Fernseher is an all encompassing set of scripts to solve all the world&amp;#039;s problems, determine whether P really does equal NP, make me lots of money, and make a fool of myself, all at once.  I imagine it will be useful to no one, do exactly what no one wants it to do, and be accused of murder and money laundering multiple times.  If it does what you want it to do, reconsider, because you are probably wrong.  It won&amp;#039;t even do what I want it to do, and I wrote the damn thing.&lt;br /&gt;
&lt;br /&gt;
In summation, your probably don&amp;#039;t really want this set of crap on your box, and if you put it on your box, it is likely that your computer will implode, and almost certain that all your base will belong to me.&lt;br /&gt;
&lt;br /&gt;
That said, I am using this wiki to keep track of ideas I have for the various components involved, what they do, what they should do, how to use them, how to improve them, and what will happen if you don&amp;#039;t use them with everything else.  I am also hoping to do some rudimentary interface design here for the various front ends, as well as backend database design so I know how its all supposed to go together.  I may also put any information I have on the various utilities I plan on using to interface with the tuner cards, as well as interfaces to play music and video, adjust channels, volume, use bittorrent, etc.  &lt;br /&gt;
&lt;br /&gt;
*Festina lente  (hurry slowly)&lt;br /&gt;
*Id est  (that is)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Slackware resources===&lt;br /&gt;
*slackware.com&lt;br /&gt;
*slackbuilds.org&lt;br /&gt;
*kernel.org&lt;br /&gt;
*slackbook.org&lt;br /&gt;
*slackwiki.org&lt;br /&gt;
*sbopkg.org&lt;br /&gt;
*linuxquestions.org&lt;br /&gt;
*alienBOB&amp;#039;s wiki&lt;br /&gt;
*alienBOB&amp;#039;s slackbuilds&lt;br /&gt;
* ##slackware&lt;br /&gt;
* #slackbuilds&lt;br /&gt;
*slackware-annouce@slackware.com&lt;br /&gt;
*slackware-security@slackware.com&lt;br /&gt;
*slackbuilds-users@slackbuilds.org&lt;br /&gt;
*linux-kernel@vger.kernel.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Backend/Server Components===&lt;br /&gt;
&lt;br /&gt;
*[[durchcoderd]]&lt;br /&gt;
*[[herrd]]&lt;br /&gt;
*[[rissd]]&lt;br /&gt;
*[[seherd]]&lt;br /&gt;
*[[unterhalterd]]&lt;br /&gt;
&lt;br /&gt;
===Frontend/Client Components===&lt;br /&gt;
&lt;br /&gt;
*[[nackt]]&lt;br /&gt;
*[[spieler]]&lt;br /&gt;
*[[wunscher]]&lt;br /&gt;
&lt;br /&gt;
===Database Design and Synchronization===&lt;br /&gt;
&lt;br /&gt;
*[[Tables]]&lt;br /&gt;
*[[Managed Objects]]&lt;br /&gt;
*[[Queues]]&lt;br /&gt;
*[[Synchronization]]&lt;br /&gt;
*[[Clients]]&lt;br /&gt;
&lt;br /&gt;
===Components to Harness===&lt;br /&gt;
&lt;br /&gt;
*[[libgpod]]&lt;br /&gt;
*[[vlc]]&lt;br /&gt;
*[[mplayer]]&lt;br /&gt;
*[[mpg123]]&lt;br /&gt;
*[[mencoder]]&lt;br /&gt;
*[[curses]]&lt;br /&gt;
*[[ajax]]&lt;br /&gt;
*[[firefox]]&lt;br /&gt;
*[[wiimote mouse]]&lt;br /&gt;
*[[tvshows from online]]&lt;br /&gt;
*[http://www.gnu.org/software/make/manual/make.html#Automatic-Prerequisites Auto deps for makefiles]&lt;br /&gt;
*[http://www.fftw.org/doc/Complex-One_002dDimensional-DFTs.html fftw tutorial]&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Discrete_Fourier_transform stuff on DFT]&lt;br /&gt;
*[http://www.grinninglizard.com/tinyxmldocs/index.html TinyXML]&lt;br /&gt;
&lt;br /&gt;
===Other Related Projects===&lt;br /&gt;
&lt;br /&gt;
*[[bittorrent]]&lt;br /&gt;
*[[blogging queue]]&lt;br /&gt;
*[[mpr stream capture]]&lt;br /&gt;
*[[photo management]]&lt;br /&gt;
*[[email grabber]]&lt;br /&gt;
*[[tag clouds]]&lt;br /&gt;
*[[remote control device]]&lt;br /&gt;
*[[dialup server system]]&lt;br /&gt;
*[[distributed internal network]]&lt;br /&gt;
*[[dvdlookup.org]]&lt;br /&gt;
*[[playlist]]&lt;br /&gt;
*[[slackpkg plus plus]]&lt;br /&gt;
*[[gkrellm replacement]]&lt;br /&gt;
*[[book cataloging]]&lt;br /&gt;
*[[some avr stuff]]&lt;br /&gt;
*[[modjs]]&lt;br /&gt;
*[[thoughts on avr event scheduling]]&lt;br /&gt;
*[[MIDI and the organ project]]&lt;br /&gt;
*[[some sess doc stuff]]&lt;br /&gt;
*[[generic document structure objects]]&lt;br /&gt;
*[[pennyworth]]&lt;br /&gt;
*[[awesome keyboard]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Stuff to get working on my computers===&lt;br /&gt;
*[[xvmc]]&lt;br /&gt;
*[[nis]]&lt;br /&gt;
*[[proper dhcp]]&lt;br /&gt;
*[[special fw on router]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=MIDI_and_the_organ_project&amp;diff=2165</id>
		<title>MIDI and the organ project</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=MIDI_and_the_organ_project&amp;diff=2165"/>
		<updated>2011-03-16T22:31:19Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[http://sessrumnir.net/organs/trunk/ SVN trunk for organ code]&lt;br /&gt;
*[http://www.die-orgelseite.de/pfeifenarten_e.htm Interesting site for pipe shapes and sounds]&lt;br /&gt;
&lt;br /&gt;
*[[Pipe creation workflow]]&lt;br /&gt;
*[[Theoretical Pipe Variations]]&lt;br /&gt;
*[[Spectra]]&lt;br /&gt;
*[[Other stuff]]&lt;br /&gt;
&lt;br /&gt;
====MIDI and the organ====&lt;br /&gt;
MIDI standard is out there. Also good is the RTP-MIDI RFC, for putting MIDI data into a stream and whatnot.&lt;br /&gt;
&lt;br /&gt;
The basics, as I think we will be using them:&lt;br /&gt;
&lt;br /&gt;
Packet basics (we&amp;#039;ll only be using 3 byte packet forms):&lt;br /&gt;
&lt;br /&gt;
 1 &amp;lt;3: opcode&amp;gt; &amp;lt;4: channel&amp;gt; 0 &amp;lt;7: arg1&amp;gt; 0 &amp;lt;7: arg2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essentially, a status byte, with the high bit on (0x80-0xFF), and two argument bytes, with the high bit off (0x00-0x7F).&lt;br /&gt;
&lt;br /&gt;
opcodes of relevance:&lt;br /&gt;
*0x0: key off.  arg1 is the key number, arg2 is the velocity.  We will always use velocity of 0x40.&lt;br /&gt;
*0x1: key on. arg1 is the key number, arg2 is the velocity.  We will always use the velocity of 0x40.&lt;br /&gt;
*0x3: control change.  arg1 is the control number (0x01 is modulation wheel, 0x0B is the expression pedal), arg2 is the new control value, from 0x00 - 0x7F (Note:  If we need more than 127 steps, add 0x20 to the control number, and thats the control number to use to send the least significant 7-bits of the value.  The value sent with the base control number is considered to be the most significant 7-bits of the value.  This ensures that if just read the base control number, you set the control to approximately the correct percentage of fully off/fully on.)&lt;br /&gt;
&lt;br /&gt;
For channels, we will use:&lt;br /&gt;
*0x0: Great (Solo) Manual&lt;br /&gt;
*0x1: Swell (Accompaniment) Manual&lt;br /&gt;
*0x2: Choir (below Great) Manual, if present&lt;br /&gt;
*0x3: Solo (above Swell) Manual, if present&lt;br /&gt;
*0x4: Echo (above Solo) Manual, if present&lt;br /&gt;
*0x5: Third Pedalboard, if present, or the auxilary stop channel, covering additional stops for all manuals and pedals.&lt;br /&gt;
*0x6: Second Pedalboard, if present, or the main stop channel, covering all stops for all manuals and pedals.&lt;br /&gt;
*0x7: Main Pedalboard&lt;br /&gt;
*0x8: Great stops only&lt;br /&gt;
*0x9: Swell stops only&lt;br /&gt;
*0xA: Choir stops only&lt;br /&gt;
*0xB: Solo stops only&lt;br /&gt;
*0xC: Echo stops only&lt;br /&gt;
*0xD: Third Pedalboard stops only&lt;br /&gt;
*0xE: Second Pedalboard stops only&lt;br /&gt;
*0xF: Main Pedalboard stops only&lt;br /&gt;
&lt;br /&gt;
Our initial organ will only use channels 0x0-0x1, 0x6-0x7.&lt;br /&gt;
&lt;br /&gt;
Each keyboard channel (0x0-0x7) gets its own control set.  For our organ, where the modulation wheel and expression pedal control all divisions equally, each control change gets sent for each active channel... or maybe just for great, and the software will figure out that they control all the stuff.  Note, we may not hook up the modulation wheel when we begin.  It&amp;#039;d be kinda a lot harder to make work right, I think.&lt;br /&gt;
&lt;br /&gt;
We will be building channel combination boards, that take an enable and a sub-channel address, and read back the contents of the addressed buffer.  4 bits of address gets 16 buffers.  At 8 bits per buffer, thats 128 inputs for each channel.  That matches with midi&amp;#039;s numbering scheme.  Alternatively, if you take the LSB of the true channel, and feed it to the 4th address bit of the channel board, and only decode the top 3 bits of the channel to determine channel board enable, you can duplex your channel boards, since we will only be using under 64 inputs per channel.  The AVR firmware will have an MIDI offset value for each channel to add to the number received from the board before sending as part of a MIDI command. For most subchannels, this will be 36.  Will probably just use an offset of 0 for the stop channels.&lt;br /&gt;
&lt;br /&gt;
Using the split channel board design, we only need two channel boards for our organ.  The main board will be designed to use the channel boards in split mode, and will never probably use the split-mode stop channels (0x8-0xF), so it will only have 4 plugs for channel boards, 0x0-0x1, 0x2-0x3, 0x4-0x5, and 0x6-0x7.  The initial organ will only use the first and last of these plugs, so we don&amp;#039;t even need to populate the board positions for the other channel boards.&lt;br /&gt;
&lt;br /&gt;
Also, I think we might want to put all the switch pull-up resistors on the manuals themselves, soldered to the key tabs.  This will eliminate a lot of crap on the boards, and keep the board design uniform, since the different keys will need different pull-ups.  The manuals, with their 5k internal resistance, will need 50k (or so) pull-ups to 5V, and the pedals and stops, with no internal resistance, will need just 10k (or so) pull-ups to 5V.  Each manual will get a separate power and ground plug for the pull-ups and grounds, so the connectors for the keys don&amp;#039;t need a pin for ground or power, I don&amp;#039;t think... Though if there is room, I guess we could send it along there, too.  Can&amp;#039;t hurt anything, provided the wires support enough current for the crazy case of all the stop pulled or keys pressed or something.  Given a max of 64 inputs to a half-channel, and only 61 keys on a full manual, we can use 2x36 pin connectors for the manuals, and 1x36 pin connector for the pedalboards, and 1x36 pin connector for the stop boards.  Thats 6 total 36 pin connectors, male and female, solder cup and through-hole.&lt;br /&gt;
&lt;br /&gt;
Channel board to main board connectors will have an 8-bit data bus, 4-bit address bus, a power, ground, enable, and identify(?) pins (16 total).  Should be able to use IDC connectors and ribbon cable here.&lt;br /&gt;
&lt;br /&gt;
===Simple algorithm for key change detection===&lt;br /&gt;
After reading a byte from the buffers, we xor it with the copy of the byte from last time, then store the new version in the copy location.  We then start looking at the lsb of the xor&amp;#039;ed byte.  If its a 1, we send a key on if the lsb of the read byte is a 1, and a key off if the lsb of the read byte is a 0.  We then shift right and do that again.  We do that 8 times, once for each bit in that byte.  Then we can move on to the next valid address for that channel, write out the address, read back the buffer value, xor, store, analyze, etc.  Note, we can speed this up by checking if the xor byte is identically 0x00, in which case we don&amp;#039;t have to analyze it, it hasn&amp;#039;t changed.  This will be the usual case!  Only occasionally (in sample time), will things change, and usually only on one bit, and thus one buffer, amongst all the channels and buffers.  This should help us keep up to speed.&lt;br /&gt;
&lt;br /&gt;
Once we are done reading all the channel board buffers, we can check the expression pedals and other variable controls for new values, and possibly send control change events.  After all this, we actually send the MIDI bytes as we have determined them to need to be for this time around, and go to sleep until our next sample time.&lt;br /&gt;
&lt;br /&gt;
Not sure what the latency of the serial to USB conversion is in FTDI, but it could be as bad as a single byte in a single USB message....  Anyway, we want to build a buffer of bytes that need to get send over each sample time, with the RTP-MIDI spec used to make it a stream type thing.  This means: packet length, &amp;quot;timestamp&amp;quot;, first MIDI event, relative timestamps (should all be zero), subsequent MIDI events.&lt;br /&gt;
&lt;br /&gt;
===Chips to use===&lt;br /&gt;
*16x? 74HCT540  for the octal tri-state buffers, inverting (0.54, 20 pin dip)&lt;br /&gt;
*1x? 74HCT138  for 1 to 8 decoder (0.40, 16 pin dip)&lt;br /&gt;
*1x? 74HCT154  for 1 to 16 decoder (0.80, 24 pin dip)&lt;br /&gt;
*1x ATMega164P-20P for AVR controller, 20MHz, (4.82, 40 pin dip)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Stuff from the old Google Notebook stuff===&lt;br /&gt;
====Pin layout====&lt;br /&gt;
*8 data (D7-D0)&lt;br /&gt;
*8 address (A7-A0)&lt;br /&gt;
*5 inverted address (/A7-/A3)&lt;br /&gt;
*1 power (V)&lt;br /&gt;
*1 ground (G)&lt;br /&gt;
*1 card select (S)&lt;br /&gt;
*1 R/W (R)&lt;br /&gt;
*1 Presence detect (P)&lt;br /&gt;
   1   2   3   4   5   6   7   8   9  10  11  12  13&lt;br /&gt;
 1 V   S   R   P   G   A0-------A2 A3--------------A7&lt;br /&gt;
 2 D0---------------Data--------D7 /A3------------/A7&lt;br /&gt;
&lt;br /&gt;
====Alternative Input Detection====&lt;br /&gt;
Using 40pin AVR, we can use a lot of digital inputs directly to the AVR.  We have to use some for normal things.  On the slave:&lt;br /&gt;
*Vcc&lt;br /&gt;
*Gnd&lt;br /&gt;
*Reset&lt;br /&gt;
*XTAL1&lt;br /&gt;
*XTAL2&lt;br /&gt;
*UART RX (all tied to CNTR TX)&lt;br /&gt;
*UART TX (all tied to MIDI out + CNTR RX)&lt;br /&gt;
*RTS&lt;br /&gt;
*CTS&lt;br /&gt;
Thats 9 pins, so 31 are left for digital inputs for keys/stops (per controller).&lt;br /&gt;
&lt;br /&gt;
On the master (CNTR):&lt;br /&gt;
*Vcc&lt;br /&gt;
*Gnd&lt;br /&gt;
*Reset&lt;br /&gt;
*XTAL1&lt;br /&gt;
*XTAL2&lt;br /&gt;
*UART1 RX (tied to all Slave TXs)&lt;br /&gt;
*UART1 TX (tied to all Slave RXs)&lt;br /&gt;
*MOSI&lt;br /&gt;
*MISO&lt;br /&gt;
*SCK&lt;br /&gt;
*UART2 RX (from host)&lt;br /&gt;
*UART2 TX (to host)&lt;br /&gt;
Thats 12 pins, so 28 are left for RTS/CTS controls for each slave.  That means a max of 14 slaves.  However, if we use some ADCs on the master for analog controls, we might lose some possible slaves.  Or, the analog controls could be fed to a slave controller, or a dedicated controller.&lt;br /&gt;
&lt;br /&gt;
If we have what you might hope would be a max config:&lt;br /&gt;
*5 manuals@61 keys is 2 slaves/manual, or 10 max&lt;br /&gt;
*1 pedalboard@30/32 keys is 1 slaves/pedalboard, or 1 max  (Note: 32 wouldn&amp;#039;t fit...)&lt;br /&gt;
*1 set of stops@60 stops or so is 2 slaves/stop set, or 2 max&lt;br /&gt;
That gives us about 13 boards.  Maybe the last slave could be used for more stops, or analog controls.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=MIDI_and_the_organ_project&amp;diff=2164</id>
		<title>MIDI and the organ project</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=MIDI_and_the_organ_project&amp;diff=2164"/>
		<updated>2011-03-16T22:30:45Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[http://sessrumnir.net/organs/trunk/ SVN trunk for organ code]&lt;br /&gt;
*[http://www.die-orgelseite.de/pfeifenarten_e.htm Interesting site for pipe shapes and sounds]&lt;br /&gt;
&lt;br /&gt;
*[[Pipe creation workflow]]&lt;br /&gt;
*[[Theoretical Pipe Variations]]&lt;br /&gt;
*[[Spectra]]&lt;br /&gt;
*[[Other stuff]]&lt;br /&gt;
&lt;br /&gt;
====MIDI and the organ====&lt;br /&gt;
MIDI standard is out there. Also good is the RTP-MIDI RFC, for putting MIDI data into a stream and whatnot.&lt;br /&gt;
&lt;br /&gt;
The basics, as I think we will be using them:&lt;br /&gt;
&lt;br /&gt;
Packet basics (we&amp;#039;ll only be using 3 byte packet forms):&lt;br /&gt;
&lt;br /&gt;
 1 &amp;lt;3: opcode&amp;gt; &amp;lt;4: channel&amp;gt; 0 &amp;lt;7: arg1&amp;gt; 0 &amp;lt;7: arg2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essentially, a status byte, with the high bit on (0x80-0xFF), and two argument bytes, with the high bit off (0x00-0x7F).&lt;br /&gt;
&lt;br /&gt;
opcodes of relevance:&lt;br /&gt;
*0x0: key off.  arg1 is the key number, arg2 is the velocity.  We will always use velocity of 0x40.&lt;br /&gt;
*0x1: key on. arg1 is the key number, arg2 is the velocity.  We will always use the velocity of 0x40.&lt;br /&gt;
*0x3: control change.  arg1 is the control number (0x01 is modulation wheel, 0x0B is the expression pedal), arg2 is the new control value, from 0x00 - 0x7F (Note:  If we need more than 127 steps, add 0x20 to the control number, and thats the control number to use to send the least significant 7-bits of the value.  The value sent with the base control number is considered to be the most significant 7-bits of the value.  This ensures that if just read the base control number, you set the control to approximately the correct percentage of fully off/fully on.)&lt;br /&gt;
&lt;br /&gt;
For channels, we will use:&lt;br /&gt;
*0x0: Great (Solo) Manual&lt;br /&gt;
*0x1: Swell (Accompaniment) Manual&lt;br /&gt;
*0x2: Choir (below Great) Manual, if present&lt;br /&gt;
*0x3: Solo (above Swell) Manual, if present&lt;br /&gt;
*0x4: Echo (above Solo) Manual, if present&lt;br /&gt;
*0x5: Third Pedalboard, if present, or the auxilary stop channel, covering additional stops for all manuals and pedals.&lt;br /&gt;
*0x6: Second Pedalboard, if present, or the main stop channel, covering all stops for all manuals and pedals.&lt;br /&gt;
*0x7: Main Pedalboard&lt;br /&gt;
*0x8: Great stops only&lt;br /&gt;
*0x9: Swell stops only&lt;br /&gt;
*0xA: Choir stops only&lt;br /&gt;
*0xB: Solo stops only&lt;br /&gt;
*0xC: Echo stops only&lt;br /&gt;
*0xD: Third Pedalboard stops only&lt;br /&gt;
*0xE: Second Pedalboard stops only&lt;br /&gt;
*0xF: Main Pedalboard stops only&lt;br /&gt;
&lt;br /&gt;
Our initial organ will only use channels 0x0-0x1, 0x6-0x7.&lt;br /&gt;
&lt;br /&gt;
Each keyboard channel (0x0-0x7) gets its own control set.  For our organ, where the modulation wheel and expression pedal control all divisions equally, each control change gets sent for each active channel... or maybe just for great, and the software will figure out that they control all the stuff.  Note, we may not hook up the modulation wheel when we begin.  It&amp;#039;d be kinda a lot harder to make work right, I think.&lt;br /&gt;
&lt;br /&gt;
We will be building channel combination boards, that take an enable and a sub-channel address, and read back the contents of the addressed buffer.  4 bits of address gets 16 buffers.  At 8 bits per buffer, thats 128 inputs for each channel.  That matches with midi&amp;#039;s numbering scheme.  Alternatively, if you take the LSB of the true channel, and feed it to the 4th address bit of the channel board, and only decode the top 3 bits of the channel to determine channel board enable, you can duplex your channel boards, since we will only be using under 64 inputs per channel.  The AVR firmware will have an MIDI offset value for each channel to add to the number received from the board before sending as part of a MIDI command. For most subchannels, this will be 36.  Will probably just use an offset of 0 for the stop channels.&lt;br /&gt;
&lt;br /&gt;
Using the split channel board design, we only need two channel boards for our organ.  The main board will be designed to use the channel boards in split mode, and will never probably use the split-mode stop channels (0x8-0xF), so it will only have 4 plugs for channel boards, 0x0-0x1, 0x2-0x3, 0x4-0x5, and 0x6-0x7.  The initial organ will only use the first and last of these plugs, so we don&amp;#039;t even need to populate the board positions for the other channel boards.&lt;br /&gt;
&lt;br /&gt;
Also, I think we might want to put all the switch pull-up resistors on the manuals themselves, soldered to the key tabs.  This will eliminate a lot of crap on the boards, and keep the board design uniform, since the different keys will need different pull-ups.  The manuals, with their 5k internal resistance, will need 50k (or so) pull-ups to 5V, and the pedals and stops, with no internal resistance, will need just 10k (or so) pull-ups to 5V.  Each manual will get a separate power and ground plug for the pull-ups and grounds, so the connectors for the keys don&amp;#039;t need a pin for ground or power, I don&amp;#039;t think... Though if there is room, I guess we could send it along there, too.  Can&amp;#039;t hurt anything, provided the wires support enough current for the crazy case of all the stop pulled or keys pressed or something.  Given a max of 64 inputs to a half-channel, and only 61 keys on a full manual, we can use 2x36 pin connectors for the manuals, and 1x36 pin connector for the pedalboards, and 1x36 pin connector for the stop boards.  Thats 6 total 36 pin connectors, male and female, solder cup and through-hole.&lt;br /&gt;
&lt;br /&gt;
Channel board to main board connectors will have an 8-bit data bus, 4-bit address bus, a power, ground, enable, and identify(?) pins (16 total).  Should be able to use IDC connectors and ribbon cable here.&lt;br /&gt;
&lt;br /&gt;
===Simple algorithm for key change detection===&lt;br /&gt;
After reading a byte from the buffers, we xor it with the copy of the byte from last time, then store the new version in the copy location.  We then start looking at the lsb of the xor&amp;#039;ed byte.  If its a 1, we send a key on if the lsb of the read byte is a 1, and a key off if the lsb of the read byte is a 0.  We then shift right and do that again.  We do that 8 times, once for each bit in that byte.  Then we can move on to the next valid address for that channel, write out the address, read back the buffer value, xor, store, analyze, etc.  Note, we can speed this up by checking if the xor byte is identically 0x00, in which case we don&amp;#039;t have to analyze it, it hasn&amp;#039;t changed.  This will be the usual case!  Only occasionally (in sample time), will things change, and usually only on one bit, and thus one buffer, amongst all the channels and buffers.  This should help us keep up to speed.&lt;br /&gt;
&lt;br /&gt;
Once we are done reading all the channel board buffers, we can check the expression pedals and other variable controls for new values, and possibly send control change events.  After all this, we actually send the MIDI bytes as we have determined them to need to be for this time around, and go to sleep until our next sample time.&lt;br /&gt;
&lt;br /&gt;
Not sure what the latency of the serial to USB conversion is in FTDI, but it could be as bad as a single byte in a single USB message....  Anyway, we want to build a buffer of bytes that need to get send over each sample time, with the RTP-MIDI spec used to make it a stream type thing.  This means: packet length, &amp;quot;timestamp&amp;quot;, first MIDI event, relative timestamps (should all be zero), subsequent MIDI events.&lt;br /&gt;
&lt;br /&gt;
===Chips to use===&lt;br /&gt;
*16x? 74HCT540  for the octal tri-state buffers, inverting (0.54, 20 pin dip)&lt;br /&gt;
*1x? 74HCT138  for 1 to 8 decoder (0.40, 16 pin dip)&lt;br /&gt;
*1x? 74HCT154  for 1 to 16 decoder (0.80, 24 pin dip)&lt;br /&gt;
*1x ATMega164P-20P for AVR controller, 20MHz, (4.82, 40 pin dip)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Stuff from the old Google Notebook stuff===&lt;br /&gt;
_Pin layout_&lt;br /&gt;
*8 data (D7-D0)&lt;br /&gt;
*8 address (A7-A0)&lt;br /&gt;
*5 inverted address (/A7-/A3)&lt;br /&gt;
*1 power (V)&lt;br /&gt;
*1 ground (G)&lt;br /&gt;
*1 card select (S)&lt;br /&gt;
*1 R/W (R)&lt;br /&gt;
*1 Presence detect (P)&lt;br /&gt;
   1   2   3   4   5   6   7   8   9  10  11  12  13&lt;br /&gt;
 1 V   S   R   P   G   A0-------A2 A3--------------A7&lt;br /&gt;
 2 D0---------------Data--------D7 /A3------------/A7&lt;br /&gt;
&lt;br /&gt;
_Alternative Input Detection_&lt;br /&gt;
Using 40pin AVR, we can use a lot of digital inputs directly to the AVR.  We have to use some for normal things.  On the slave:&lt;br /&gt;
*Vcc&lt;br /&gt;
*Gnd&lt;br /&gt;
*Reset&lt;br /&gt;
*XTAL1&lt;br /&gt;
*XTAL2&lt;br /&gt;
*UART RX (all tied to CNTR TX)&lt;br /&gt;
*UART TX (all tied to MIDI out + CNTR RX)&lt;br /&gt;
*RTS&lt;br /&gt;
*CTS&lt;br /&gt;
Thats 9 pins, so 31 are left for digital inputs for keys/stops (per controller).&lt;br /&gt;
&lt;br /&gt;
On the master (CNTR):&lt;br /&gt;
*Vcc&lt;br /&gt;
*Gnd&lt;br /&gt;
*Reset&lt;br /&gt;
*XTAL1&lt;br /&gt;
*XTAL2&lt;br /&gt;
*UART1 RX (tied to all Slave TXs)&lt;br /&gt;
*UART1 TX (tied to all Slave RXs)&lt;br /&gt;
*MOSI&lt;br /&gt;
*MISO&lt;br /&gt;
*SCK&lt;br /&gt;
*UART2 RX (from host)&lt;br /&gt;
*UART2 TX (to host)&lt;br /&gt;
Thats 12 pins, so 28 are left for RTS/CTS controls for each slave.  That means a max of 14 slaves.  However, if we use some ADCs on the master for analog controls, we might lose some possible slaves.  Or, the analog controls could be fed to a slave controller, or a dedicated controller.&lt;br /&gt;
&lt;br /&gt;
If we have what you might hope would be a max config:&lt;br /&gt;
*5 manuals@61 keys is 2 slaves/manual, or 10 max&lt;br /&gt;
*1 pedalboard@30/32 keys is 1 slaves/pedalboard, or 1 max  (Note: 32 wouldn&amp;#039;t fit...)&lt;br /&gt;
*1 set of stops@60 stops or so is 2 slaves/stop set, or 2 max&lt;br /&gt;
That gives us about 13 boards.  Maybe the last slave could be used for more stops, or analog controls.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=Pennyworth&amp;diff=2163</id>
		<title>Pennyworth</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Pennyworth&amp;diff=2163"/>
		<updated>2010-05-24T23:33:01Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;#039;bookmarklet grabs the asin from the page, and the url, and maybe the page title (as description).  Then presents the user with that info, and the ability to override the asin, de…&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;bookmarklet grabs the asin from the page, and the url, and maybe the page title (as description).  Then presents the user with that info, and the ability to override the asin, description, default quantity of 1, importance, and maybe a price setting, if the user desires to not look it up all the time.&lt;br /&gt;
&lt;br /&gt;
That info, with the session id cookie (if present) and originating ip is sent to the server, which adds it to the item table based on the session id&amp;#039;s userid (or does a login), the date, and a state indicating it should be involved in calculations.&lt;br /&gt;
&lt;br /&gt;
A daemon should run to fetch data from amazon, including price, availability, etc., and put that into a table to keep track of each item&amp;#039;s price (including already purchased ones?)&lt;br /&gt;
&lt;br /&gt;
Another daemon runs to distribute available money (as calculated) and assign it to each item, based on importance, price, availability, quantity, and date added.  If something can be purchased, it may send an email to the user with a link to the webpage or shopping cart directly.&lt;br /&gt;
&lt;br /&gt;
The webpage allows logging in and out (which makes/destroys a session cookie), creating a user.  Adjust amount of money currently available, adjust automatic money increases.  User settings (purchase rate, algorithm, etc)&lt;br /&gt;
&lt;br /&gt;
Also provides a way to see all the items, and from there, directly add new ones, delete some, change whether an item participates in calculations, directly buy the item, adjust asin, description, price, quantity, importance.   Price history.&lt;br /&gt;
&lt;br /&gt;
Lets you see what items you can buy right now and adjust that cart to defer purchasing something, or purchase something outside of amazon, etc.&lt;br /&gt;
&lt;br /&gt;
Lets you mark that you already bought something elsewhere, and how that should adjust the available cash.&lt;br /&gt;
&lt;br /&gt;
You can also see when the current rate of new money, algorithm, etc, would want you to purchase a given item.&lt;br /&gt;
&lt;br /&gt;
You can see old items, and old purchases.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=Fernseher&amp;diff=2162</id>
		<title>Fernseher</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Fernseher&amp;diff=2162"/>
		<updated>2010-05-24T23:24:44Z</updated>

		<summary type="html">&lt;p&gt;Admin: /* Other Related Projects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Fernseher is an all encompassing set of scripts to solve all the world&amp;#039;s problems, determine whether P really does equal NP, make me lots of money, and make a fool of myself, all at once.  I imagine it will be useful to no one, do exactly what no one wants it to do, and be accused of murder and money laundering multiple times.  If it does what you want it to do, reconsider, because you are probably wrong.  It won&amp;#039;t even do what I want it to do, and I wrote the damn thing.&lt;br /&gt;
&lt;br /&gt;
In summation, your probably don&amp;#039;t really want this set of crap on your box, and if you put it on your box, it is likely that your computer will implode, and almost certain that all your base will belong to me.&lt;br /&gt;
&lt;br /&gt;
That said, I am using this wiki to keep track of ideas I have for the various components involved, what they do, what they should do, how to use them, how to improve them, and what will happen if you don&amp;#039;t use them with everything else.  I am also hoping to do some rudimentary interface design here for the various front ends, as well as backend database design so I know how its all supposed to go together.  I may also put any information I have on the various utilities I plan on using to interface with the tuner cards, as well as interfaces to play music and video, adjust channels, volume, use bittorrent, etc.  &lt;br /&gt;
&lt;br /&gt;
*Festina lente  (hurry slowly)&lt;br /&gt;
*Id est  (that is)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Slackware resources===&lt;br /&gt;
*slackware.com&lt;br /&gt;
*slackbuilds.org&lt;br /&gt;
*kernel.org&lt;br /&gt;
*slackbook.org&lt;br /&gt;
*slackwiki.org&lt;br /&gt;
*sbopkg.org&lt;br /&gt;
*linuxquestions.org&lt;br /&gt;
*alienBOB&amp;#039;s wiki&lt;br /&gt;
*alienBOB&amp;#039;s slackbuilds&lt;br /&gt;
* ##slackware&lt;br /&gt;
* #slackbuilds&lt;br /&gt;
*slackware-annouce@slackware.com&lt;br /&gt;
*slackware-security@slackware.com&lt;br /&gt;
*slackbuilds-users@slackbuilds.org&lt;br /&gt;
*linux-kernel@vger.kernel.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Backend/Server Components===&lt;br /&gt;
&lt;br /&gt;
*[[durchcoderd]]&lt;br /&gt;
*[[herrd]]&lt;br /&gt;
*[[rissd]]&lt;br /&gt;
*[[seherd]]&lt;br /&gt;
*[[unterhalterd]]&lt;br /&gt;
&lt;br /&gt;
===Frontend/Client Components===&lt;br /&gt;
&lt;br /&gt;
*[[nackt]]&lt;br /&gt;
*[[spieler]]&lt;br /&gt;
*[[wunscher]]&lt;br /&gt;
&lt;br /&gt;
===Database Design and Synchronization===&lt;br /&gt;
&lt;br /&gt;
*[[Tables]]&lt;br /&gt;
*[[Managed Objects]]&lt;br /&gt;
*[[Queues]]&lt;br /&gt;
*[[Synchronization]]&lt;br /&gt;
*[[Clients]]&lt;br /&gt;
&lt;br /&gt;
===Components to Harness===&lt;br /&gt;
&lt;br /&gt;
*[[libgpod]]&lt;br /&gt;
*[[vlc]]&lt;br /&gt;
*[[mplayer]]&lt;br /&gt;
*[[mpg123]]&lt;br /&gt;
*[[mencoder]]&lt;br /&gt;
*[[curses]]&lt;br /&gt;
*[[ajax]]&lt;br /&gt;
*[[firefox]]&lt;br /&gt;
*[[wiimote mouse]]&lt;br /&gt;
*[[tvshows from online]]&lt;br /&gt;
*[http://www.gnu.org/software/make/manual/make.html#Automatic-Prerequisites Auto deps for makefiles]&lt;br /&gt;
*[http://www.fftw.org/doc/Complex-One_002dDimensional-DFTs.html fftw tutorial]&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Discrete_Fourier_transform stuff on DFT]&lt;br /&gt;
*[http://www.grinninglizard.com/tinyxmldocs/index.html TinyXML]&lt;br /&gt;
&lt;br /&gt;
===Other Related Projects===&lt;br /&gt;
&lt;br /&gt;
*[[bittorrent]]&lt;br /&gt;
*[[blogging queue]]&lt;br /&gt;
*[[mpr stream capture]]&lt;br /&gt;
*[[photo management]]&lt;br /&gt;
*[[email grabber]]&lt;br /&gt;
*[[tag clouds]]&lt;br /&gt;
*[[remote control device]]&lt;br /&gt;
*[[dialup server system]]&lt;br /&gt;
*[[distributed internal network]]&lt;br /&gt;
*[[dvdlookup.org]]&lt;br /&gt;
*[[playlist]]&lt;br /&gt;
*[[slackpkg plus plus]]&lt;br /&gt;
*[[gkrellm replacement]]&lt;br /&gt;
*[[book cataloging]]&lt;br /&gt;
*[[some avr stuff]]&lt;br /&gt;
*[[modjs]]&lt;br /&gt;
*[[thoughts on avr event scheduling]]&lt;br /&gt;
*[[MIDI and the organ project]]&lt;br /&gt;
*[[some sess doc stuff]]&lt;br /&gt;
*[[generic document structure objects]]&lt;br /&gt;
*[[pennyworth]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Stuff to get working on my computers===&lt;br /&gt;
*[[xvmc]]&lt;br /&gt;
*[[nis]]&lt;br /&gt;
*[[proper dhcp]]&lt;br /&gt;
*[[special fw on router]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=Generic_document_structure_objects&amp;diff=2161</id>
		<title>Generic document structure objects</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Generic_document_structure_objects&amp;diff=2161"/>
		<updated>2010-05-19T21:15:12Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Two parts:&lt;br /&gt;
*data structures representing the document structure&lt;br /&gt;
*text formatting&lt;br /&gt;
&lt;br /&gt;
It&amp;#039;s important to keep the distinction between the two.  Representations for the first are independant of representations for the second.&lt;br /&gt;
&lt;br /&gt;
I&amp;#039;d like the first (data structures) to be something that can easily and directly translate between languages, container formats, databases, etc.&lt;br /&gt;
The second (formating) should primarily be unified across all data structure types and formats, but there might be alternative representations for XHTML.&lt;br /&gt;
&lt;br /&gt;
We can address the formatting first:&lt;br /&gt;
&lt;br /&gt;
*bold text&lt;br /&gt;
&amp;lt;b&amp;gt; tags for XHTML &amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*italic text&lt;br /&gt;
&amp;lt;i&amp;gt; tags for XHTML &amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*underline text&lt;br /&gt;
&amp;lt;u&amp;gt; tags for XHTML &amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*strikethrough text&lt;br /&gt;
&amp;lt;s&amp;gt; tags for XHTML &amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*monospaced text&lt;br /&gt;
&amp;lt;m&amp;gt; tags for XHMTL? &amp;lt;/m&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*enumerated lists&lt;br /&gt;
&amp;lt;ol&amp;gt; tags in XHTML &amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*itemized lists&lt;br /&gt;
&amp;lt;ul&amp;gt; tags in XHTML &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*description lists&lt;br /&gt;
&amp;lt;dl&amp;gt; tags in XHTML &amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*tex inline math&lt;br /&gt;
$ &amp;quot;tag&amp;quot; in TeX&lt;br /&gt;
&lt;br /&gt;
*references (both internal and external)&lt;br /&gt;
&lt;br /&gt;
Ensure that we allow unicode characters and maybe XHTML character entities?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The data structure should be easy to put into YAML, JSON, XML.  It should be directly representable by nested hashes and arrays in javascript and perl.&lt;br /&gt;
&lt;br /&gt;
Object types:&lt;br /&gt;
*Document: contains information about the entire document and points to contained Sections (as pre-matter, main body, and appendices).&lt;br /&gt;
*Section: Contains content in the form of Paragraphs, Figures, Tables, Code Fragments, Equations.&lt;br /&gt;
*Paragraph: Contains text content.&lt;br /&gt;
*Figure: Contains image content.&lt;br /&gt;
*Table: Contains tabular format (data).&lt;br /&gt;
*Code: Contains code listings.&lt;br /&gt;
*Equation: Contains non-inline TeX equations (or mathml I suppose).&lt;br /&gt;
&lt;br /&gt;
For each item, it could contain verbatim text, formatted text, data, image blobs, URIs to find the information, etc., as appropriate for the type.&lt;br /&gt;
&lt;br /&gt;
*Most of these objects have id fields, specifying a way to refer to the given section, figure, etc.&lt;br /&gt;
*Most have title fields, which would be used to identify the section, etc, in tables of contents, figures, bibliographies, etc., as well as titles in the section text itself.&lt;br /&gt;
*A url field may be present which would be used to get the data for the section.&lt;br /&gt;
*Alternatively, a blob field could be present, where the section&amp;#039;s data would be directly included in the data structure.&lt;br /&gt;
*If either the url or blob field is present, a type field would specify how to interpret the data at the URL, or the data in the blob.  The default type depends on the type of object and the fields that the data is in.&lt;br /&gt;
*Some objects may have caption fields to show by the figure/table/etc.&lt;br /&gt;
*Some objects may contain other fields to represent the data in a different way.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=Generic_document_structure_objects&amp;diff=2160</id>
		<title>Generic document structure objects</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Generic_document_structure_objects&amp;diff=2160"/>
		<updated>2010-05-19T21:14:09Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Two parts:&lt;br /&gt;
*data structures representing the document structure&lt;br /&gt;
*text formatting&lt;br /&gt;
&lt;br /&gt;
It&amp;#039;s important to keep the distinction between the two.  Representations for the first are independant of representations for the second.&lt;br /&gt;
&lt;br /&gt;
I&amp;#039;d like the first (data structures) to be something that can easily and directly translate between languages, container formats, databases, etc.&lt;br /&gt;
The second (formating) should primarily be unified across all data structure types and formats, but there might be alternative representations for XHTML.&lt;br /&gt;
&lt;br /&gt;
We can address the formatting first:&lt;br /&gt;
&lt;br /&gt;
*bold text&lt;br /&gt;
&amp;lt;b&amp;gt; tags for XHTML &amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*italic text&lt;br /&gt;
&amp;lt;i&amp;gt; tags for XHTML &amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*underline text&lt;br /&gt;
&amp;lt;u&amp;gt; tags for XHTML &amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*strikethrough text&lt;br /&gt;
&amp;lt;s&amp;gt; tags for XHTML &amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*monospaced text&lt;br /&gt;
&amp;lt;m&amp;gt; tags for XHMTL? &amp;lt;/m&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*enumerated lists&lt;br /&gt;
&amp;lt;ol&amp;gt; tags in XHTML &amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*itemized lists&lt;br /&gt;
&amp;lt;ul&amp;gt; tags in XHTML &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*description lists&lt;br /&gt;
&amp;lt;dl&amp;gt; tags in XHTML &amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*tex inline math&lt;br /&gt;
$ &amp;quot;tag&amp;quot; in TeX&lt;br /&gt;
&lt;br /&gt;
*references (both internal and external)&lt;br /&gt;
&lt;br /&gt;
Ensure that we allow unicode characters and maybe XHTML character entities?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The data structure should be easy to put into YAML, JSON, XML.  It should be directly representable by nested hashes and arrays in javascript and perl.&lt;br /&gt;
&lt;br /&gt;
Object types:&lt;br /&gt;
-------------&lt;br /&gt;
Document: contains information about the entire document and points to contained Sections (as pre-matter, main body, and appendices).&lt;br /&gt;
Section: Contains content in the form of Paragraphs, Figures, Tables, Code Fragments, Equations.&lt;br /&gt;
Paragraph: Contains text content.&lt;br /&gt;
Figure: Contains image content.&lt;br /&gt;
Table: Contains tabular format (data).&lt;br /&gt;
Code: Contains code listings.&lt;br /&gt;
Equation: Contains non-inline TeX equations (or mathml I suppose).&lt;br /&gt;
&lt;br /&gt;
For each item, it could contain verbatim text, formatted text, data, image blobs, URIs to find the information, etc., as appropriate for the type.&lt;br /&gt;
&lt;br /&gt;
Most of these objects have id fields, specifying a way to refer to the given section, figure, etc.&lt;br /&gt;
Most have title fields, which would be used to identify the section, etc, in tables of contents, figures, bibliographies, etc., as well as titles in the section text itself.&lt;br /&gt;
A url field may be present which would be used to get the data for the section.&lt;br /&gt;
Alternatively, a blob field could be present, where the section&amp;#039;s data would be directly included in the data structure.&lt;br /&gt;
If either the url or blob field is present, a type field would specify how to interpret the data at the URL, or the data in the blob.  The default type depends on the type of object and the fields that the data is in.&lt;br /&gt;
Some objects may have caption fields to show by the figure/table/etc.&lt;br /&gt;
Some objects may contain other fields to represent the data in a different way.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=Generic_document_structure_objects&amp;diff=2159</id>
		<title>Generic document structure objects</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Generic_document_structure_objects&amp;diff=2159"/>
		<updated>2010-05-19T21:13:07Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Two parts:&lt;br /&gt;
*data structures representing the document structure&lt;br /&gt;
*text formatting&lt;br /&gt;
&lt;br /&gt;
It&amp;#039;s important to keep the distinction between the two.  Representations for the first are independant of representations for the second.&lt;br /&gt;
&lt;br /&gt;
I&amp;#039;d like the first (data structures) to be something that can easily and directly translate between languages, container formats, databases, etc.&lt;br /&gt;
The second (formating) should primarily be unified across all data structure types and formats, but there might be alternative representations for XHTML.&lt;br /&gt;
&lt;br /&gt;
We can address the formatting first:&lt;br /&gt;
&lt;br /&gt;
*bold text&lt;br /&gt;
&amp;lt;b&amp;gt; tags for XHTML &amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*italic text&lt;br /&gt;
&amp;lt;i&amp;gt; tags for XHTML &amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*underline text&lt;br /&gt;
&amp;lt;u&amp;gt; tags for XHTML &amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*strikethrough text&lt;br /&gt;
&amp;lt;s&amp;gt; tags for XHTML? &amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*monospaced text&lt;br /&gt;
&amp;lt;m&amp;gt; tags for XHMTL? &amp;lt;/m&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*enumerated lists&lt;br /&gt;
&amp;lt;ol&amp;gt; tags in XHTML &amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*itemized lists&lt;br /&gt;
&amp;lt;ul&amp;gt; tags in XHTML &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*description lists&lt;br /&gt;
&amp;lt;dd&amp;gt; tags in XHTML &amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*tex inline math&lt;br /&gt;
$ &amp;quot;tag&amp;quot; in TeX&lt;br /&gt;
&lt;br /&gt;
*references (both internal and external)&lt;br /&gt;
&lt;br /&gt;
Ensure that we allow unicode characters and maybe XHTML character entities?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The data structure should be easy to put into YAML, JSON, XML.  It should be directly representable by nested hashes and arrays in javascript and perl.&lt;br /&gt;
&lt;br /&gt;
Object types:&lt;br /&gt;
-------------&lt;br /&gt;
Document: contains information about the entire document and points to contained Sections (as pre-matter, main body, and appendices).&lt;br /&gt;
Section: Contains content in the form of Paragraphs, Figures, Tables, Code Fragments, Equations.&lt;br /&gt;
Paragraph: Contains text content.&lt;br /&gt;
Figure: Contains image content.&lt;br /&gt;
Table: Contains tabular format (data).&lt;br /&gt;
Code: Contains code listings.&lt;br /&gt;
Equation: Contains non-inline TeX equations (or mathml I suppose).&lt;br /&gt;
&lt;br /&gt;
For each item, it could contain verbatim text, formatted text, data, image blobs, URIs to find the information, etc., as appropriate for the type.&lt;br /&gt;
&lt;br /&gt;
Most of these objects have id fields, specifying a way to refer to the given section, figure, etc.&lt;br /&gt;
Most have title fields, which would be used to identify the section, etc, in tables of contents, figures, bibliographies, etc., as well as titles in the section text itself.&lt;br /&gt;
A url field may be present which would be used to get the data for the section.&lt;br /&gt;
Alternatively, a blob field could be present, where the section&amp;#039;s data would be directly included in the data structure.&lt;br /&gt;
If either the url or blob field is present, a type field would specify how to interpret the data at the URL, or the data in the blob.  The default type depends on the type of object and the fields that the data is in.&lt;br /&gt;
Some objects may have caption fields to show by the figure/table/etc.&lt;br /&gt;
Some objects may contain other fields to represent the data in a different way.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=Generic_document_structure_objects&amp;diff=2158</id>
		<title>Generic document structure objects</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Generic_document_structure_objects&amp;diff=2158"/>
		<updated>2010-05-19T21:12:09Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;#039;Two parts: *data structures representing the document structure *text formatting  It&amp;#039;s important to keep the distinction between the two.  Representations for the first are indep…&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Two parts:&lt;br /&gt;
*data structures representing the document structure&lt;br /&gt;
*text formatting&lt;br /&gt;
&lt;br /&gt;
It&amp;#039;s important to keep the distinction between the two.  Representations for the first are independant of representations for the second.&lt;br /&gt;
&lt;br /&gt;
I&amp;#039;d like the first (data structures) to be something that can easily and directly translate between languages, container formats, databases, etc.&lt;br /&gt;
The second (formating) should primarily be unified across all data structure types and formats, but there might be alternative representations for XHTML.&lt;br /&gt;
&lt;br /&gt;
We can address the formatting first:&lt;br /&gt;
&lt;br /&gt;
*bold text&lt;br /&gt;
&amp;lt;b&amp;gt; tags for XHTML&lt;br /&gt;
&lt;br /&gt;
*italic text&lt;br /&gt;
&amp;lt;i&amp;gt; tags for XHTML&lt;br /&gt;
&lt;br /&gt;
*underline text&lt;br /&gt;
&amp;lt;u&amp;gt; tags for XHTML&lt;br /&gt;
&lt;br /&gt;
*strikethrough text&lt;br /&gt;
&amp;lt;s&amp;gt; tags for XHTML?&lt;br /&gt;
&lt;br /&gt;
*monospaced text&lt;br /&gt;
&amp;lt;m&amp;gt; tags for XHMTL?&lt;br /&gt;
&lt;br /&gt;
*enumerated lists&lt;br /&gt;
&amp;lt;ol&amp;gt; tags in XHTML&lt;br /&gt;
&lt;br /&gt;
*itemized lists&lt;br /&gt;
&amp;lt;ul&amp;gt; tags in XHTML&lt;br /&gt;
&lt;br /&gt;
*description lists&lt;br /&gt;
&amp;lt;dd&amp;gt; tags in XHTML&lt;br /&gt;
&lt;br /&gt;
*tex inline math&lt;br /&gt;
$ &amp;quot;tag&amp;quot; in TeX&lt;br /&gt;
&lt;br /&gt;
*references (both internal and external)&lt;br /&gt;
&lt;br /&gt;
Ensure that we allow unicode characters and maybe XHTML character entities?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The data structure should be easy to put into YAML, JSON, XML.  It should be directly representable by nested hashes and arrays in javascript and perl.&lt;br /&gt;
&lt;br /&gt;
Object types:&lt;br /&gt;
-------------&lt;br /&gt;
Document: contains information about the entire document and points to contained Sections (as pre-matter, main body, and appendices).&lt;br /&gt;
Section: Contains content in the form of Paragraphs, Figures, Tables, Code Fragments, Equations.&lt;br /&gt;
Paragraph: Contains text content.&lt;br /&gt;
Figure: Contains image content.&lt;br /&gt;
Table: Contains tabular format (data).&lt;br /&gt;
Code: Contains code listings.&lt;br /&gt;
Equation: Contains non-inline TeX equations (or mathml I suppose).&lt;br /&gt;
&lt;br /&gt;
For each item, it could contain verbatim text, formatted text, data, image blobs, URIs to find the information, etc., as appropriate for the type.&lt;br /&gt;
&lt;br /&gt;
Most of these objects have id fields, specifying a way to refer to the given section, figure, etc.&lt;br /&gt;
Most have title fields, which would be used to identify the section, etc, in tables of contents, figures, bibliographies, etc., as well as titles in the section text itself.&lt;br /&gt;
A url field may be present which would be used to get the data for the section.&lt;br /&gt;
Alternatively, a blob field could be present, where the section&amp;#039;s data would be directly included in the data structure.&lt;br /&gt;
If either the url or blob field is present, a type field would specify how to interpret the data at the URL, or the data in the blob.  The default type depends on the type of object and the fields that the data is in.&lt;br /&gt;
Some objects may have caption fields to show by the figure/table/etc.&lt;br /&gt;
Some objects may contain other fields to represent the data in a different way.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=Fernseher&amp;diff=2157</id>
		<title>Fernseher</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Fernseher&amp;diff=2157"/>
		<updated>2010-05-19T21:09:59Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Fernseher is an all encompassing set of scripts to solve all the world&amp;#039;s problems, determine whether P really does equal NP, make me lots of money, and make a fool of myself, all at once.  I imagine it will be useful to no one, do exactly what no one wants it to do, and be accused of murder and money laundering multiple times.  If it does what you want it to do, reconsider, because you are probably wrong.  It won&amp;#039;t even do what I want it to do, and I wrote the damn thing.&lt;br /&gt;
&lt;br /&gt;
In summation, your probably don&amp;#039;t really want this set of crap on your box, and if you put it on your box, it is likely that your computer will implode, and almost certain that all your base will belong to me.&lt;br /&gt;
&lt;br /&gt;
That said, I am using this wiki to keep track of ideas I have for the various components involved, what they do, what they should do, how to use them, how to improve them, and what will happen if you don&amp;#039;t use them with everything else.  I am also hoping to do some rudimentary interface design here for the various front ends, as well as backend database design so I know how its all supposed to go together.  I may also put any information I have on the various utilities I plan on using to interface with the tuner cards, as well as interfaces to play music and video, adjust channels, volume, use bittorrent, etc.  &lt;br /&gt;
&lt;br /&gt;
*Festina lente  (hurry slowly)&lt;br /&gt;
*Id est  (that is)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Slackware resources===&lt;br /&gt;
*slackware.com&lt;br /&gt;
*slackbuilds.org&lt;br /&gt;
*kernel.org&lt;br /&gt;
*slackbook.org&lt;br /&gt;
*slackwiki.org&lt;br /&gt;
*sbopkg.org&lt;br /&gt;
*linuxquestions.org&lt;br /&gt;
*alienBOB&amp;#039;s wiki&lt;br /&gt;
*alienBOB&amp;#039;s slackbuilds&lt;br /&gt;
* ##slackware&lt;br /&gt;
* #slackbuilds&lt;br /&gt;
*slackware-annouce@slackware.com&lt;br /&gt;
*slackware-security@slackware.com&lt;br /&gt;
*slackbuilds-users@slackbuilds.org&lt;br /&gt;
*linux-kernel@vger.kernel.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Backend/Server Components===&lt;br /&gt;
&lt;br /&gt;
*[[durchcoderd]]&lt;br /&gt;
*[[herrd]]&lt;br /&gt;
*[[rissd]]&lt;br /&gt;
*[[seherd]]&lt;br /&gt;
*[[unterhalterd]]&lt;br /&gt;
&lt;br /&gt;
===Frontend/Client Components===&lt;br /&gt;
&lt;br /&gt;
*[[nackt]]&lt;br /&gt;
*[[spieler]]&lt;br /&gt;
*[[wunscher]]&lt;br /&gt;
&lt;br /&gt;
===Database Design and Synchronization===&lt;br /&gt;
&lt;br /&gt;
*[[Tables]]&lt;br /&gt;
*[[Managed Objects]]&lt;br /&gt;
*[[Queues]]&lt;br /&gt;
*[[Synchronization]]&lt;br /&gt;
*[[Clients]]&lt;br /&gt;
&lt;br /&gt;
===Components to Harness===&lt;br /&gt;
&lt;br /&gt;
*[[libgpod]]&lt;br /&gt;
*[[vlc]]&lt;br /&gt;
*[[mplayer]]&lt;br /&gt;
*[[mpg123]]&lt;br /&gt;
*[[mencoder]]&lt;br /&gt;
*[[curses]]&lt;br /&gt;
*[[ajax]]&lt;br /&gt;
*[[firefox]]&lt;br /&gt;
*[[wiimote mouse]]&lt;br /&gt;
*[[tvshows from online]]&lt;br /&gt;
*[http://www.gnu.org/software/make/manual/make.html#Automatic-Prerequisites Auto deps for makefiles]&lt;br /&gt;
*[http://www.fftw.org/doc/Complex-One_002dDimensional-DFTs.html fftw tutorial]&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Discrete_Fourier_transform stuff on DFT]&lt;br /&gt;
*[http://www.grinninglizard.com/tinyxmldocs/index.html TinyXML]&lt;br /&gt;
&lt;br /&gt;
===Other Related Projects===&lt;br /&gt;
&lt;br /&gt;
*[[bittorrent]]&lt;br /&gt;
*[[blogging queue]]&lt;br /&gt;
*[[mpr stream capture]]&lt;br /&gt;
*[[photo management]]&lt;br /&gt;
*[[email grabber]]&lt;br /&gt;
*[[tag clouds]]&lt;br /&gt;
*[[remote control device]]&lt;br /&gt;
*[[dialup server system]]&lt;br /&gt;
*[[distributed internal network]]&lt;br /&gt;
*[[dvdlookup.org]]&lt;br /&gt;
*[[playlist]]&lt;br /&gt;
*[[slackpkg plus plus]]&lt;br /&gt;
*[[gkrellm replacement]]&lt;br /&gt;
*[[book cataloging]]&lt;br /&gt;
*[[some avr stuff]]&lt;br /&gt;
*[[modjs]]&lt;br /&gt;
*[[thoughts on avr event scheduling]]&lt;br /&gt;
*[[MIDI and the organ project]]&lt;br /&gt;
*[[some sess doc stuff]]&lt;br /&gt;
*[[generic document structure objects]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Stuff to get working on my computers===&lt;br /&gt;
*[[xvmc]]&lt;br /&gt;
*[[nis]]&lt;br /&gt;
*[[proper dhcp]]&lt;br /&gt;
*[[special fw on router]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=Some_sess_doc_stuff&amp;diff=2156</id>
		<title>Some sess doc stuff</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Some_sess_doc_stuff&amp;diff=2156"/>
		<updated>2009-11-11T19:43:57Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;For all of these, the search order for the database URL is: ~/.sessdoc[REPO] &amp;#039;&amp;#039;etc-root&amp;#039;&amp;#039;/etc/sessdoc.conf http://www.sessrumnir.net:80/doc&lt;br /&gt;
For load, default is to print the response body, but not the headers or error messages. For store, default is to print nothing.&lt;br /&gt;
&lt;br /&gt;
*Load&lt;br /&gt;
&lt;br /&gt;
sessdocget &amp;#039;&amp;#039;id&amp;#039;&amp;#039;[/&amp;#039;&amp;#039;rev&amp;#039;&amp;#039;] [--noheaders] [--headers] [--nobody] [--body] [--verbose] &amp;gt; &amp;#039;&amp;#039;entity&amp;#039;&amp;#039; ::=&amp;#039;&amp;#039;httprc&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
*Store (For all stores, Content-title, From, and Content-type are required. Content-type comes from the branched document for branches. If From is not specified, its gotten from ~/.sessdoc[AUTHOR] or $USER.  For put, these things can be specified on the command line or in a simple headers section before the first newline.  If any of them are on the command line, it&amp;#039;s assumed that there is no simple headers section and the body starts right away.)&lt;br /&gt;
&lt;br /&gt;
sessdocput &amp;#039;&amp;#039;id&amp;#039;&amp;#039;[/&amp;#039;&amp;#039;rev&amp;#039;&amp;#039;] [--type=&amp;#039;&amp;#039;content-type&amp;#039;&amp;#039;] [--title=&amp;#039;&amp;#039;content-title&amp;#039;&amp;#039;] [--author=&amp;#039;&amp;#039;author&amp;#039;&amp;#039;] [--noheaders] [--headers] [--nobody] [--body] [--verbose] &amp;lt; &amp;#039;&amp;#039;entity&amp;#039;&amp;#039; &amp;gt; &amp;#039;&amp;#039;entity&amp;#039;&amp;#039; ::=&amp;#039;&amp;#039;httprc&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
sessdocbranch &amp;#039;&amp;#039;id&amp;#039;&amp;#039;[/&amp;#039;&amp;#039;rev&amp;#039;&amp;#039;] &amp;#039;&amp;#039;new-id&amp;#039;&amp;#039; [--title=&amp;#039;&amp;#039;content-title&amp;#039;&amp;#039;] [--author=&amp;#039;&amp;#039;author&amp;#039;&amp;#039;] [--noheaders] [--headers] [--body] [--nobody] [--verbose] &amp;gt; &amp;#039;&amp;#039;entity&amp;#039;&amp;#039; ::=&amp;#039;&amp;#039;httprc&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
*Return codes&lt;br /&gt;
**64 EX_USAGE Args not understood or missing required args&lt;br /&gt;
**69 EX_UNAVAILABLE 500 Can&amp;#039;t connect to repository host/port&lt;br /&gt;
**78 EX_CONFIG Problem reading config files?  (might not need this one... just move on)&lt;br /&gt;
**1 EXIT_FAILURE Internal error that isn&amp;#039;t normal&lt;br /&gt;
**65 EX_DATAERR 400 Bad request&lt;br /&gt;
**77 EX_NOPERM 409 Not allowed&lt;br /&gt;
**79 EX_NOTFOUND 404 No such document/revision&lt;br /&gt;
**0 EXIT_SUCCESS 200/201 Success&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=Some_sess_doc_stuff&amp;diff=2155</id>
		<title>Some sess doc stuff</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Some_sess_doc_stuff&amp;diff=2155"/>
		<updated>2009-11-11T15:28:06Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;For all of these, the search order for the database URL is: ~/.sessdoc[REPO] &amp;#039;&amp;#039;etc-root&amp;#039;&amp;#039;/etc/sessdoc.conf http://www.sessrumnir.net:80/doc&lt;br /&gt;
&lt;br /&gt;
*Load&lt;br /&gt;
&lt;br /&gt;
sessdocget &amp;#039;&amp;#039;id&amp;#039;&amp;#039;[/&amp;#039;&amp;#039;rev&amp;#039;&amp;#039;] &amp;gt; &amp;#039;&amp;#039;entity&amp;#039;&amp;#039; ::=&amp;#039;&amp;#039;httprc&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
sessdocget &amp;#039;&amp;#039;id&amp;#039;&amp;#039;[/&amp;#039;&amp;#039;rev&amp;#039;&amp;#039;] --nohead &amp;gt; &amp;#039;&amp;#039;body&amp;#039;&amp;#039; ::=&amp;#039;&amp;#039;httprc&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
sessdochead &amp;#039;&amp;#039;id&amp;#039;&amp;#039;[/&amp;#039;&amp;#039;rev&amp;#039;&amp;#039;] &amp;gt; &amp;#039;&amp;#039;head&amp;#039;&amp;#039; ::=&amp;#039;&amp;#039;httprc&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
*Store&lt;br /&gt;
&lt;br /&gt;
sessdocput &amp;#039;&amp;#039;id&amp;#039;&amp;#039;[/&amp;#039;&amp;#039;rev&amp;#039;&amp;#039;] &amp;lt; &amp;#039;&amp;#039;entity&amp;#039;&amp;#039; ::=&amp;#039;&amp;#039;httprc&amp;#039;&amp;#039; (* headers required: Content-type, Content-title, potentially From: (if From not specified, ~/.sessdoc[AUTHOR] or $USER is used))&lt;br /&gt;
&lt;br /&gt;
sessdocput &amp;#039;&amp;#039;id&amp;#039;&amp;#039;[/&amp;#039;&amp;#039;rev&amp;#039;&amp;#039;] --type=&amp;#039;&amp;#039;content-type&amp;#039;&amp;#039; --title=&amp;#039;&amp;#039;content-title&amp;#039;&amp;#039; [--author=&amp;#039;&amp;#039;author&amp;#039;&amp;#039;] &amp;lt; &amp;#039;&amp;#039;body&amp;#039;&amp;#039; ::=&amp;#039;&amp;#039;httprc&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
sessdocbranch &amp;#039;&amp;#039;id&amp;#039;&amp;#039;[/&amp;#039;&amp;#039;rev&amp;#039;&amp;#039;] &amp;#039;&amp;#039;new-id&amp;#039;&amp;#039; &amp;lt; &amp;#039;&amp;#039;head&amp;#039;&amp;#039; ::=&amp;#039;&amp;#039;httprc&amp;#039;&amp;#039; (* headers required: Content-title, potentially From: (if From not specified, ~/.sessdoc[AUTHOR] or $USER is used))&lt;br /&gt;
&lt;br /&gt;
sessdocbranch &amp;#039;&amp;#039;id&amp;#039;&amp;#039;[/&amp;#039;&amp;#039;rev&amp;#039;&amp;#039;] &amp;#039;&amp;#039;new-id&amp;#039;&amp;#039; --title=&amp;#039;&amp;#039;content-title&amp;#039;&amp;#039; [--author=&amp;#039;&amp;#039;author&amp;#039;&amp;#039;] ::=&amp;#039;&amp;#039;httprc&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
*Return codes&lt;br /&gt;
**64 EX_USAGE Args not understood or missing required args&lt;br /&gt;
**69 EX_UNAVAILABLE Can&amp;#039;t connect to repository host/port&lt;br /&gt;
**78 EX_CONFIG Problem reading config files?  (might not need this one... just move on)&lt;br /&gt;
**1 EXIT_FAILURE Internal error that isn&amp;#039;t normal&lt;br /&gt;
**65 EX_DATAERR 400 Bad request&lt;br /&gt;
**77 EX_NOPERM 409 Not allowed&lt;br /&gt;
**79 EX_NOTFOUND 404 No such document/revision&lt;br /&gt;
**0 EXIT_SUCCESS 200/201 Success&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=Some_sess_doc_stuff&amp;diff=2154</id>
		<title>Some sess doc stuff</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Some_sess_doc_stuff&amp;diff=2154"/>
		<updated>2009-11-05T22:30:46Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;For all of these, the search order for the database URL is: ~/.sessdoc[REPO] &amp;#039;&amp;#039;etc-root&amp;#039;&amp;#039;/etc/sessdoc.conf http://www.sessrumnir.net/doc&lt;br /&gt;
&lt;br /&gt;
*Load&lt;br /&gt;
&lt;br /&gt;
sessdocget &amp;#039;&amp;#039;id&amp;#039;&amp;#039;[/&amp;#039;&amp;#039;rev&amp;#039;&amp;#039;] &amp;gt; &amp;#039;&amp;#039;entity&amp;#039;&amp;#039; ::=&amp;#039;&amp;#039;httprc&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
sessdocget &amp;#039;&amp;#039;id&amp;#039;&amp;#039;[/&amp;#039;&amp;#039;rev&amp;#039;&amp;#039;] --nohead &amp;gt; &amp;#039;&amp;#039;body&amp;#039;&amp;#039; ::=&amp;#039;&amp;#039;httprc&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
sessdochead &amp;#039;&amp;#039;id&amp;#039;&amp;#039;[/&amp;#039;&amp;#039;rev&amp;#039;&amp;#039;] &amp;gt; &amp;#039;&amp;#039;head&amp;#039;&amp;#039; ::=&amp;#039;&amp;#039;httprc&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
*Store&lt;br /&gt;
&lt;br /&gt;
sessdocput &amp;#039;&amp;#039;id&amp;#039;&amp;#039;[/&amp;#039;&amp;#039;rev&amp;#039;&amp;#039;] &amp;lt; &amp;#039;&amp;#039;entity&amp;#039;&amp;#039; ::=&amp;#039;&amp;#039;httprc&amp;#039;&amp;#039; (* headers required: Content-type, Content-title, potentially From: (if From not specified, ~/.sessdoc[AUTHOR] or $USER is used))&lt;br /&gt;
&lt;br /&gt;
sessdocput &amp;#039;&amp;#039;id&amp;#039;&amp;#039;[/&amp;#039;&amp;#039;rev&amp;#039;&amp;#039;] --type=&amp;#039;&amp;#039;content-type&amp;#039;&amp;#039; --title=&amp;#039;&amp;#039;content-title&amp;#039;&amp;#039; [--author=&amp;#039;&amp;#039;author&amp;#039;&amp;#039;] &amp;lt; &amp;#039;&amp;#039;body&amp;#039;&amp;#039; ::=&amp;#039;&amp;#039;httprc&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
sessdocbranch &amp;#039;&amp;#039;id&amp;#039;&amp;#039;[/&amp;#039;&amp;#039;rev&amp;#039;&amp;#039;] &amp;#039;&amp;#039;new-id&amp;#039;&amp;#039; &amp;lt; &amp;#039;&amp;#039;head&amp;#039;&amp;#039; ::=&amp;#039;&amp;#039;httprc&amp;#039;&amp;#039; (* headers required: Content-title, potentially From: (if From not specified, ~/.sessdoc[AUTHOR] or $USER is used))&lt;br /&gt;
&lt;br /&gt;
sessdocbranch &amp;#039;&amp;#039;id&amp;#039;&amp;#039;[/&amp;#039;&amp;#039;rev&amp;#039;&amp;#039;] &amp;#039;&amp;#039;new-id&amp;#039;&amp;#039; --title=&amp;#039;&amp;#039;content-title&amp;#039;&amp;#039; [--author=&amp;#039;&amp;#039;author&amp;#039;&amp;#039;] ::=&amp;#039;&amp;#039;httprc&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=Some_sess_doc_stuff&amp;diff=2153</id>
		<title>Some sess doc stuff</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Some_sess_doc_stuff&amp;diff=2153"/>
		<updated>2009-11-05T22:29:53Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;For all of these, the search order for the database URL is: ~/.sessdoc[REPO] &amp;#039;&amp;#039;etc-root&amp;#039;&amp;#039;/etc/sessdoc.conf http://www.sessrumnir.net/doc&lt;br /&gt;
&lt;br /&gt;
*Load&lt;br /&gt;
&lt;br /&gt;
sessdocget &amp;#039;&amp;#039;id&amp;#039;&amp;#039;[/&amp;#039;&amp;#039;rev&amp;#039;&amp;#039;] &amp;gt; &amp;#039;&amp;#039;entity&amp;#039;&amp;#039; ::=&amp;#039;&amp;#039;httprc&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
sessdocget &amp;#039;&amp;#039;id&amp;#039;&amp;#039;[/&amp;#039;&amp;#039;rev&amp;#039;&amp;#039;] --nohead &amp;gt; &amp;#039;&amp;#039;body&amp;#039;&amp;#039; ::=&amp;#039;&amp;#039;httprc&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
sessdochead &amp;#039;&amp;#039;id&amp;#039;&amp;#039;[/&amp;#039;&amp;#039;rev&amp;#039;&amp;#039;] &amp;gt; &amp;#039;&amp;#039;head&amp;#039;&amp;#039; ::=&amp;#039;&amp;#039;httprc&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
*Store&lt;br /&gt;
&lt;br /&gt;
sessdocput &amp;#039;&amp;#039;id&amp;#039;&amp;#039;[/&amp;#039;&amp;#039;rev&amp;#039;&amp;#039;] &amp;lt; &amp;#039;&amp;#039;entity&amp;#039;&amp;#039; ::=&amp;#039;&amp;#039;httprc&amp;#039;&amp;#039;&lt;br /&gt;
** headers required: Content-type, Content-title, potentially From: (if From not specified, ~/.sessdoc[AUTHOR] or $USER is used).&lt;br /&gt;
&lt;br /&gt;
sessdocput &amp;#039;&amp;#039;id&amp;#039;&amp;#039;[/&amp;#039;&amp;#039;rev&amp;#039;&amp;#039;] --type=&amp;#039;&amp;#039;content-type&amp;#039;&amp;#039; --title=&amp;#039;&amp;#039;content-title&amp;#039;&amp;#039; [--author=&amp;#039;&amp;#039;author&amp;#039;&amp;#039;] &amp;lt; &amp;#039;&amp;#039;body&amp;#039;&amp;#039; ::=&amp;#039;&amp;#039;httprc&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
sessdocbranch &amp;#039;&amp;#039;id&amp;#039;&amp;#039;[/&amp;#039;&amp;#039;rev&amp;#039;&amp;#039;] &amp;#039;&amp;#039;new-id&amp;#039;&amp;#039; &amp;lt; &amp;#039;&amp;#039;head&amp;#039;&amp;#039; ::=&amp;#039;&amp;#039;httprc&amp;#039;&amp;#039;&lt;br /&gt;
** headers required: Content-title, potentially From: (if From not specified, ~/.sessdoc[AUTHOR] or $USER is used).&lt;br /&gt;
&lt;br /&gt;
sessdocbranch &amp;#039;&amp;#039;id&amp;#039;&amp;#039;[/&amp;#039;&amp;#039;rev&amp;#039;&amp;#039;] &amp;#039;&amp;#039;new-id&amp;#039;&amp;#039; --title=&amp;#039;&amp;#039;content-title&amp;#039;&amp;#039; [--author=&amp;#039;&amp;#039;author&amp;#039;&amp;#039;] ::=&amp;#039;&amp;#039;httprc&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=Some_sess_doc_stuff&amp;diff=2152</id>
		<title>Some sess doc stuff</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Some_sess_doc_stuff&amp;diff=2152"/>
		<updated>2009-11-05T22:18:25Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Load&lt;br /&gt;
&lt;br /&gt;
sessdocget &amp;#039;&amp;#039;id&amp;#039;&amp;#039;[/&amp;#039;&amp;#039;rev&amp;#039;&amp;#039;] &amp;gt; &amp;#039;&amp;#039;entity&amp;#039;&amp;#039; &amp;quot;&amp;quot;=&amp;#039;&amp;#039;httprc&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
sessdocget &amp;#039;&amp;#039;id&amp;#039;&amp;#039;[/&amp;#039;&amp;#039;rev&amp;#039;&amp;#039;] --nohead &amp;gt; &amp;#039;&amp;#039;body&amp;#039;&amp;#039; ::=&amp;#039;&amp;#039;httprc&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
sessdochead &amp;#039;&amp;#039;id&amp;#039;&amp;#039;[/&amp;#039;&amp;#039;rev&amp;#039;&amp;#039;] &amp;lt; &amp;#039;&amp;#039;head&amp;#039;&amp;#039; ::=&amp;#039;&amp;#039;httprc&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
*Store (author, if not specified, will be ~/.sessdoc[AUTHOR], or userid on localhost)&lt;br /&gt;
&lt;br /&gt;
sessdocput &amp;#039;&amp;#039;id&amp;#039;&amp;#039;[/&amp;#039;&amp;#039;rev&amp;#039;&amp;#039;] &amp;lt; &amp;#039;&amp;#039;entity&amp;#039;&amp;#039; ::=&amp;#039;&amp;#039;httprc&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
sessdocput &amp;#039;&amp;#039;id&amp;#039;&amp;#039;[/&amp;#039;&amp;#039;rev&amp;#039;&amp;#039;] --type=&amp;#039;&amp;#039;content-type&amp;#039;&amp;#039; --title=&amp;#039;&amp;#039;content-title&amp;#039;&amp;#039; [--author=&amp;#039;&amp;#039;author&amp;#039;&amp;#039;] &amp;lt; &amp;#039;&amp;#039;body&amp;#039;&amp;#039; ::=&amp;#039;&amp;#039;httprc&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
sessdocbranch &amp;#039;&amp;#039;id&amp;#039;&amp;#039;[/&amp;#039;&amp;#039;rev&amp;#039;&amp;#039;] &amp;#039;&amp;#039;new-id&amp;#039;&amp;#039; [--author=&amp;#039;&amp;#039;author&amp;#039;&amp;#039;] ::=&amp;#039;&amp;#039;httprc&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=Some_sess_doc_stuff&amp;diff=2151</id>
		<title>Some sess doc stuff</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Some_sess_doc_stuff&amp;diff=2151"/>
		<updated>2009-11-05T22:12:44Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;#039;*sessdocget  sessdocget &amp;#039;&amp;#039;id&amp;#039;&amp;#039;[/&amp;#039;&amp;#039;rev&amp;#039;&amp;#039;] &amp;gt; &amp;#039;&amp;#039;entity&amp;#039;&amp;#039; =&amp;#039;&amp;#039;http rc&amp;#039;&amp;#039;&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*sessdocget&lt;br /&gt;
&lt;br /&gt;
sessdocget &amp;#039;&amp;#039;id&amp;#039;&amp;#039;[/&amp;#039;&amp;#039;rev&amp;#039;&amp;#039;] &amp;gt; &amp;#039;&amp;#039;entity&amp;#039;&amp;#039; =&amp;#039;&amp;#039;http rc&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=Fernseher&amp;diff=2150</id>
		<title>Fernseher</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Fernseher&amp;diff=2150"/>
		<updated>2009-11-05T22:10:37Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Fernseher is an all encompassing set of scripts to solve all the world&amp;#039;s problems, determine whether P really does equal NP, make me lots of money, and make a fool of myself, all at once.  I imagine it will be useful to no one, do exactly what no one wants it to do, and be accused of murder and money laundering multiple times.  If it does what you want it to do, reconsider, because you are probably wrong.  It won&amp;#039;t even do what I want it to do, and I wrote the damn thing.&lt;br /&gt;
&lt;br /&gt;
In summation, your probably don&amp;#039;t really want this set of crap on your box, and if you put it on your box, it is likely that your computer will implode, and almost certain that all your base will belong to me.&lt;br /&gt;
&lt;br /&gt;
That said, I am using this wiki to keep track of ideas I have for the various components involved, what they do, what they should do, how to use them, how to improve them, and what will happen if you don&amp;#039;t use them with everything else.  I am also hoping to do some rudimentary interface design here for the various front ends, as well as backend database design so I know how its all supposed to go together.  I may also put any information I have on the various utilities I plan on using to interface with the tuner cards, as well as interfaces to play music and video, adjust channels, volume, use bittorrent, etc.  &lt;br /&gt;
&lt;br /&gt;
*Festina lente  (hurry slowly)&lt;br /&gt;
*Id est  (that is)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Slackware resources===&lt;br /&gt;
*slackware.com&lt;br /&gt;
*slackbuilds.org&lt;br /&gt;
*kernel.org&lt;br /&gt;
*slackbook.org&lt;br /&gt;
*slackwiki.org&lt;br /&gt;
*sbopkg.org&lt;br /&gt;
*linuxquestions.org&lt;br /&gt;
*alienBOB&amp;#039;s wiki&lt;br /&gt;
*alienBOB&amp;#039;s slackbuilds&lt;br /&gt;
* ##slackware&lt;br /&gt;
* #slackbuilds&lt;br /&gt;
*slackware-annouce@slackware.com&lt;br /&gt;
*slackware-security@slackware.com&lt;br /&gt;
*slackbuilds-users@slackbuilds.org&lt;br /&gt;
*linux-kernel@vger.kernel.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Backend/Server Components===&lt;br /&gt;
&lt;br /&gt;
*[[durchcoderd]]&lt;br /&gt;
*[[herrd]]&lt;br /&gt;
*[[rissd]]&lt;br /&gt;
*[[seherd]]&lt;br /&gt;
*[[unterhalterd]]&lt;br /&gt;
&lt;br /&gt;
===Frontend/Client Components===&lt;br /&gt;
&lt;br /&gt;
*[[nackt]]&lt;br /&gt;
*[[spieler]]&lt;br /&gt;
*[[wunscher]]&lt;br /&gt;
&lt;br /&gt;
===Database Design and Synchronization===&lt;br /&gt;
&lt;br /&gt;
*[[Tables]]&lt;br /&gt;
*[[Managed Objects]]&lt;br /&gt;
*[[Queues]]&lt;br /&gt;
*[[Synchronization]]&lt;br /&gt;
*[[Clients]]&lt;br /&gt;
&lt;br /&gt;
===Components to Harness===&lt;br /&gt;
&lt;br /&gt;
*[[libgpod]]&lt;br /&gt;
*[[vlc]]&lt;br /&gt;
*[[mplayer]]&lt;br /&gt;
*[[mpg123]]&lt;br /&gt;
*[[mencoder]]&lt;br /&gt;
*[[curses]]&lt;br /&gt;
*[[ajax]]&lt;br /&gt;
*[[firefox]]&lt;br /&gt;
*[[wiimote mouse]]&lt;br /&gt;
*[[tvshows from online]]&lt;br /&gt;
*[http://www.gnu.org/software/make/manual/make.html#Automatic-Prerequisites Auto deps for makefiles]&lt;br /&gt;
*[http://www.fftw.org/doc/Complex-One_002dDimensional-DFTs.html fftw tutorial]&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Discrete_Fourier_transform stuff on DFT]&lt;br /&gt;
*[http://www.grinninglizard.com/tinyxmldocs/index.html TinyXML]&lt;br /&gt;
&lt;br /&gt;
===Other Related Projects===&lt;br /&gt;
&lt;br /&gt;
*[[bittorrent]]&lt;br /&gt;
*[[blogging queue]]&lt;br /&gt;
*[[mpr stream capture]]&lt;br /&gt;
*[[photo management]]&lt;br /&gt;
*[[email grabber]]&lt;br /&gt;
*[[tag clouds]]&lt;br /&gt;
*[[remote control device]]&lt;br /&gt;
*[[dialup server system]]&lt;br /&gt;
*[[distributed internal network]]&lt;br /&gt;
*[[dvdlookup.org]]&lt;br /&gt;
*[[playlist]]&lt;br /&gt;
*[[slackpkg plus plus]]&lt;br /&gt;
*[[gkrellm replacement]]&lt;br /&gt;
*[[book cataloging]]&lt;br /&gt;
*[[some avr stuff]]&lt;br /&gt;
*[[modjs]]&lt;br /&gt;
*[[thoughts on avr event scheduling]]&lt;br /&gt;
*[[MIDI and the organ project]]&lt;br /&gt;
*[[some sess doc stuff]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Stuff to get working on my computers===&lt;br /&gt;
*[[xvmc]]&lt;br /&gt;
*[[nis]]&lt;br /&gt;
*[[proper dhcp]]&lt;br /&gt;
*[[special fw on router]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=Fernseher&amp;diff=2149</id>
		<title>Fernseher</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Fernseher&amp;diff=2149"/>
		<updated>2009-10-30T01:54:49Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Fernseher is an all encompassing set of scripts to solve all the world&amp;#039;s problems, determine whether P really does equal NP, make me lots of money, and make a fool of myself, all at once.  I imagine it will be useful to no one, do exactly what no one wants it to do, and be accused of murder and money laundering multiple times.  If it does what you want it to do, reconsider, because you are probably wrong.  It won&amp;#039;t even do what I want it to do, and I wrote the damn thing.&lt;br /&gt;
&lt;br /&gt;
In summation, your probably don&amp;#039;t really want this set of crap on your box, and if you put it on your box, it is likely that your computer will implode, and almost certain that all your base will belong to me.&lt;br /&gt;
&lt;br /&gt;
That said, I am using this wiki to keep track of ideas I have for the various components involved, what they do, what they should do, how to use them, how to improve them, and what will happen if you don&amp;#039;t use them with everything else.  I am also hoping to do some rudimentary interface design here for the various front ends, as well as backend database design so I know how its all supposed to go together.  I may also put any information I have on the various utilities I plan on using to interface with the tuner cards, as well as interfaces to play music and video, adjust channels, volume, use bittorrent, etc.  &lt;br /&gt;
&lt;br /&gt;
*Festina lente  (hurry slowly)&lt;br /&gt;
*Id est  (that is)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Slackware resources===&lt;br /&gt;
*slackware.com&lt;br /&gt;
*slackbuilds.org&lt;br /&gt;
*kernel.org&lt;br /&gt;
*slackbook.org&lt;br /&gt;
*slackwiki.org&lt;br /&gt;
*sbopkg.org&lt;br /&gt;
*linuxquestions.org&lt;br /&gt;
*alienBOB&amp;#039;s wiki&lt;br /&gt;
*alienBOB&amp;#039;s slackbuilds&lt;br /&gt;
* ##slackware&lt;br /&gt;
* #slackbuilds&lt;br /&gt;
*slackware-annouce@slackware.com&lt;br /&gt;
*slackware-security@slackware.com&lt;br /&gt;
*slackbuilds-users@slackbuilds.org&lt;br /&gt;
*linux-kernel@vger.kernel.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Backend/Server Components===&lt;br /&gt;
&lt;br /&gt;
*[[durchcoderd]]&lt;br /&gt;
*[[herrd]]&lt;br /&gt;
*[[rissd]]&lt;br /&gt;
*[[seherd]]&lt;br /&gt;
*[[unterhalterd]]&lt;br /&gt;
&lt;br /&gt;
===Frontend/Client Components===&lt;br /&gt;
&lt;br /&gt;
*[[nackt]]&lt;br /&gt;
*[[spieler]]&lt;br /&gt;
*[[wunscher]]&lt;br /&gt;
&lt;br /&gt;
===Database Design and Synchronization===&lt;br /&gt;
&lt;br /&gt;
*[[Tables]]&lt;br /&gt;
*[[Managed Objects]]&lt;br /&gt;
*[[Queues]]&lt;br /&gt;
*[[Synchronization]]&lt;br /&gt;
*[[Clients]]&lt;br /&gt;
&lt;br /&gt;
===Components to Harness===&lt;br /&gt;
&lt;br /&gt;
*[[libgpod]]&lt;br /&gt;
*[[vlc]]&lt;br /&gt;
*[[mplayer]]&lt;br /&gt;
*[[mpg123]]&lt;br /&gt;
*[[mencoder]]&lt;br /&gt;
*[[curses]]&lt;br /&gt;
*[[ajax]]&lt;br /&gt;
*[[firefox]]&lt;br /&gt;
*[[wiimote mouse]]&lt;br /&gt;
*[[tvshows from online]]&lt;br /&gt;
*[http://www.gnu.org/software/make/manual/make.html#Automatic-Prerequisites Auto deps for makefiles]&lt;br /&gt;
*[http://www.fftw.org/doc/Complex-One_002dDimensional-DFTs.html fftw tutorial]&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Discrete_Fourier_transform stuff on DFT]&lt;br /&gt;
*[http://www.grinninglizard.com/tinyxmldocs/index.html TinyXML]&lt;br /&gt;
&lt;br /&gt;
===Other Related Projects===&lt;br /&gt;
&lt;br /&gt;
*[[bittorrent]]&lt;br /&gt;
*[[blogging queue]]&lt;br /&gt;
*[[mpr stream capture]]&lt;br /&gt;
*[[photo management]]&lt;br /&gt;
*[[email grabber]]&lt;br /&gt;
*[[tag clouds]]&lt;br /&gt;
*[[remote control device]]&lt;br /&gt;
*[[dialup server system]]&lt;br /&gt;
*[[distributed internal network]]&lt;br /&gt;
*[[dvdlookup.org]]&lt;br /&gt;
*[[playlist]]&lt;br /&gt;
*[[slackpkg plus plus]]&lt;br /&gt;
*[[gkrellm replacement]]&lt;br /&gt;
*[[book cataloging]]&lt;br /&gt;
*[[some avr stuff]]&lt;br /&gt;
*[[modjs]]&lt;br /&gt;
*[[thoughs on avr event scheduling]]&lt;br /&gt;
*[[MIDI and the organ project]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Stuff to get working on my computers===&lt;br /&gt;
*[[xvmc]]&lt;br /&gt;
*[[nis]]&lt;br /&gt;
*[[proper dhcp]]&lt;br /&gt;
*[[special fw on router]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=Fernseher&amp;diff=2148</id>
		<title>Fernseher</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Fernseher&amp;diff=2148"/>
		<updated>2009-10-30T01:54:21Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Fernseher is an all encompassing set of scripts to solve all the world&amp;#039;s problems, determine whether P really does equal NP, make me lots of money, and make a fool of myself, all at once.  I imagine it will be useful to no one, do exactly what no one wants it to do, and be accused of murder and money laundering multiple times.  If it does what you want it to do, reconsider, because you are probably wrong.  It won&amp;#039;t even do what I want it to do, and I wrote the damn thing.&lt;br /&gt;
&lt;br /&gt;
In summation, your probably don&amp;#039;t really want this set of crap on your box, and if you put it on your box, it is likely that your computer will implode, and almost certain that all your base will belong to me.&lt;br /&gt;
&lt;br /&gt;
That said, I am using this wiki to keep track of ideas I have for the various components involved, what they do, what they should do, how to use them, how to improve them, and what will happen if you don&amp;#039;t use them with everything else.  I am also hoping to do some rudimentary interface design here for the various front ends, as well as backend database design so I know how its all supposed to go together.  I may also put any information I have on the various utilities I plan on using to interface with the tuner cards, as well as interfaces to play music and video, adjust channels, volume, use bittorrent, etc.  &lt;br /&gt;
&lt;br /&gt;
*Festina lente  (hurry slowly)&lt;br /&gt;
*Id est  (that is)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Slackware resources===&lt;br /&gt;
*slackware.com&lt;br /&gt;
*slackbuilds.org&lt;br /&gt;
*kernel.org&lt;br /&gt;
*slackbook.org&lt;br /&gt;
*slackwiki.org&lt;br /&gt;
*sbopkg.org&lt;br /&gt;
*linuxquestions.org&lt;br /&gt;
*alienBOB&amp;#039;s wiki&lt;br /&gt;
*alienBOB&amp;#039;s slackbuilds&lt;br /&gt;
*##slackware&lt;br /&gt;
*#slackbuilds&lt;br /&gt;
*slackware-annouce@slackware.com&lt;br /&gt;
*slackware-security@slackware.com&lt;br /&gt;
*slackbuilds-users@slackbuilds.org&lt;br /&gt;
*linux-kernel@vger.kernel.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Backend/Server Components===&lt;br /&gt;
&lt;br /&gt;
*[[durchcoderd]]&lt;br /&gt;
*[[herrd]]&lt;br /&gt;
*[[rissd]]&lt;br /&gt;
*[[seherd]]&lt;br /&gt;
*[[unterhalterd]]&lt;br /&gt;
&lt;br /&gt;
===Frontend/Client Components===&lt;br /&gt;
&lt;br /&gt;
*[[nackt]]&lt;br /&gt;
*[[spieler]]&lt;br /&gt;
*[[wunscher]]&lt;br /&gt;
&lt;br /&gt;
===Database Design and Synchronization===&lt;br /&gt;
&lt;br /&gt;
*[[Tables]]&lt;br /&gt;
*[[Managed Objects]]&lt;br /&gt;
*[[Queues]]&lt;br /&gt;
*[[Synchronization]]&lt;br /&gt;
*[[Clients]]&lt;br /&gt;
&lt;br /&gt;
===Components to Harness===&lt;br /&gt;
&lt;br /&gt;
*[[libgpod]]&lt;br /&gt;
*[[vlc]]&lt;br /&gt;
*[[mplayer]]&lt;br /&gt;
*[[mpg123]]&lt;br /&gt;
*[[mencoder]]&lt;br /&gt;
*[[curses]]&lt;br /&gt;
*[[ajax]]&lt;br /&gt;
*[[firefox]]&lt;br /&gt;
*[[wiimote mouse]]&lt;br /&gt;
*[[tvshows from online]]&lt;br /&gt;
*[http://www.gnu.org/software/make/manual/make.html#Automatic-Prerequisites Auto deps for makefiles]&lt;br /&gt;
*[http://www.fftw.org/doc/Complex-One_002dDimensional-DFTs.html fftw tutorial]&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Discrete_Fourier_transform stuff on DFT]&lt;br /&gt;
*[http://www.grinninglizard.com/tinyxmldocs/index.html TinyXML]&lt;br /&gt;
&lt;br /&gt;
===Other Related Projects===&lt;br /&gt;
&lt;br /&gt;
*[[bittorrent]]&lt;br /&gt;
*[[blogging queue]]&lt;br /&gt;
*[[mpr stream capture]]&lt;br /&gt;
*[[photo management]]&lt;br /&gt;
*[[email grabber]]&lt;br /&gt;
*[[tag clouds]]&lt;br /&gt;
*[[remote control device]]&lt;br /&gt;
*[[dialup server system]]&lt;br /&gt;
*[[distributed internal network]]&lt;br /&gt;
*[[dvdlookup.org]]&lt;br /&gt;
*[[playlist]]&lt;br /&gt;
*[[slackpkg plus plus]]&lt;br /&gt;
*[[gkrellm replacement]]&lt;br /&gt;
*[[book cataloging]]&lt;br /&gt;
*[[some avr stuff]]&lt;br /&gt;
*[[modjs]]&lt;br /&gt;
*[[thoughs on avr event scheduling]]&lt;br /&gt;
*[[MIDI and the organ project]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Stuff to get working on my computers===&lt;br /&gt;
*[[xvmc]]&lt;br /&gt;
*[[nis]]&lt;br /&gt;
*[[proper dhcp]]&lt;br /&gt;
*[[special fw on router]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=Bittorrent&amp;diff=2147</id>
		<title>Bittorrent</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Bittorrent&amp;diff=2147"/>
		<updated>2009-09-25T04:53:14Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Use modules&lt;br /&gt;
*XML::RSS::Parser::Lite&lt;br /&gt;
*LWP::UserAgent&lt;br /&gt;
*DBI&lt;br /&gt;
*URI&lt;br /&gt;
*HTML::Entities&lt;br /&gt;
*HTML::TokeParser::Simple&lt;br /&gt;
*WWW::Search::Mininova&lt;br /&gt;
*Net::BitTorrent&lt;br /&gt;
*POSIX qw(setsid)&lt;br /&gt;
*[[http://www.koders.com/php/fidDC98117569020F0B3A6312EEA6D233B8550EA472.aspx]]&lt;br /&gt;
&lt;br /&gt;
 daemonize&lt;br /&gt;
 set up sigint handler to set killflag&lt;br /&gt;
 connect to db&lt;br /&gt;
 set up torrent queue&lt;br /&gt;
 while not killflag&lt;br /&gt;
   processqueue&lt;br /&gt;
   if its been a second, checktorrentstates&lt;br /&gt;
   if its been a minute, checkfornewtorrents&lt;br /&gt;
 stop torrent queue&lt;br /&gt;
 checktorrentstates&lt;br /&gt;
 destroy torrent queue&lt;br /&gt;
 quit&lt;br /&gt;
&lt;br /&gt;
 checkfornewtorrents:&lt;br /&gt;
   lock table&lt;br /&gt;
   get all torrents with state of torrentretrieved&lt;br /&gt;
   foreach new torrent&lt;br /&gt;
     add to queue and update torrent state&lt;br /&gt;
   unlock table&lt;br /&gt;
&lt;br /&gt;
 checktorrentstates:&lt;br /&gt;
   lock table&lt;br /&gt;
   calculate stats for each torrent in the queue&lt;br /&gt;
   check if we were told to pause this torrent, if so, remove that torrent from the queue&lt;br /&gt;
   update the table with the latest stats.&lt;br /&gt;
   if necessary, remove from torrent queue. if not connected anymore, torrentretrieved/unconnected.  If paused, paused/unconnected. If failed, torrentretrieved/unconnected.&lt;br /&gt;
   unlock table&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CUT!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So, the idea was that some shows it might just be easier to get from Bittorrent than to wait for them to show up on television.  Also, they are usually compressed better, are at higher quality, and usually have the commercials completely removed from them.  So it would be nice if there was an easy way to see what could be gotten via Bittorrent.  (Might also be useful to be able to get a list of episodes from places like wikipedia, with description, original air date, episode number, etc.)&lt;br /&gt;
&lt;br /&gt;
So, I need a way to access The Pirate Bay&amp;#039;s database automatically.  Recently, they have hinted at an API that will be useful for searching their database, but I can&amp;#039;t currently find any details about that.  For the time being, I may have to make my own HTML scraping version.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
http://thepiratebay.org/search.php?q=&amp;lt;searchterms&amp;gt;&amp;amp;page=&amp;lt;resultpagenum&amp;gt;&amp;amp;orderby=&amp;lt;orderkey&amp;gt;&lt;br /&gt;
&lt;br /&gt;
orderkey can be name, date, size, se, le&lt;br /&gt;
page starts at 0.&lt;br /&gt;
&lt;br /&gt;
The table we want has an id of searchResult&lt;br /&gt;
&lt;br /&gt;
Thence follows a thead row, and then rows of results.&lt;br /&gt;
&lt;br /&gt;
Each result row is of form (has the following cells with examples):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;category link&amp;gt;: &amp;quot;&amp;lt;a href=&amp;quot;CATLINK&amp;quot; title=&amp;quot;More from this category&amp;quot;&amp;gt;CATEGORY&amp;lt;/a&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;detail link and title&amp;gt;: &amp;quot;&amp;lt;a href=&amp;quot;DESCLINK&amp;quot; class=&amp;quot;detLink&amp;quot; title=&amp;quot;Details for TITLE&amp;quot;&amp;gt;TITLE&amp;lt;/a&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;date and time of upload&amp;gt;: &amp;quot;DATE&amp;amp;amp;nbsp;TIME&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;download link&amp;gt;: &amp;quot;&amp;lt;a href=&amp;quot;DLLINK&amp;quot; title=&amp;quot;Download this torrent&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;IMGLINK&amp;quot; class=&amp;quot;dl&amp;quot; alt=&amp;quot;Download&amp;quot; /&amp;gt;&amp;lt;/a&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;size&amp;gt;: &amp;quot;SIZENUM&amp;amp;amp;nbsp;SIZEUNIT&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;seeders&amp;gt;: &amp;quot;SENUM&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;leachers&amp;gt;: &amp;quot;LENUM&amp;quot;&lt;br /&gt;
&lt;br /&gt;
So, from that, we want to extract CATEGORY, TITLE, DATE, TIME, DLLINK, SIZENUM, SIZEUNIT, SENUM, LENUM.  Should be a cinch.&lt;br /&gt;
&lt;br /&gt;
The last row is empty in the source, but gets magically javascriptally filled in to be the page selector.  I wouldn&amp;#039;t worry about it for now.&lt;br /&gt;
&lt;br /&gt;
Note that all of this is likely to change as The Pirate Bay changes how they do things to be more AJAXy and APIy.  Hopefully when that occurs, this will all fail gracefully, we&amp;#039;ll know, and we can fix it to use the new APIs.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=Bittorrent&amp;diff=2146</id>
		<title>Bittorrent</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Bittorrent&amp;diff=2146"/>
		<updated>2009-09-24T05:19:08Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Use modules&lt;br /&gt;
*XML::RSS::Parser::Lite&lt;br /&gt;
*LWP::UserAgent&lt;br /&gt;
*DBI&lt;br /&gt;
*URI&lt;br /&gt;
*HTML::Entities&lt;br /&gt;
*HTML::TokeParser::Simple&lt;br /&gt;
*WWW::Search::Mininova&lt;br /&gt;
*Net::BitTorrent&lt;br /&gt;
*POSIX qw(setsid)&lt;br /&gt;
&lt;br /&gt;
 daemonize&lt;br /&gt;
 set up sigint handler to set killflag&lt;br /&gt;
 connect to db&lt;br /&gt;
 set up torrent queue&lt;br /&gt;
 while not killflag&lt;br /&gt;
   processqueue&lt;br /&gt;
   if its been a second, checktorrentstates&lt;br /&gt;
   if its been a minute, checkfornewtorrents&lt;br /&gt;
 stop torrent queue&lt;br /&gt;
 checktorrentstates&lt;br /&gt;
 destroy torrent queue&lt;br /&gt;
 quit&lt;br /&gt;
&lt;br /&gt;
 checkfornewtorrents:&lt;br /&gt;
   lock table&lt;br /&gt;
   get all torrents with state of torrentretrieved&lt;br /&gt;
   foreach new torrent&lt;br /&gt;
     add to queue and update torrent state&lt;br /&gt;
   unlock table&lt;br /&gt;
&lt;br /&gt;
 checktorrentstates:&lt;br /&gt;
   lock table&lt;br /&gt;
   calculate stats for each torrent in the queue&lt;br /&gt;
   check if we were told to pause this torrent, if so, remove that torrent from the queue&lt;br /&gt;
   update the table with the latest stats.&lt;br /&gt;
   if necessary, remove from torrent queue. if not connected anymore, torrentretrieved/unconnected.  If paused, paused/unconnected. If failed, torrentretrieved/unconnected.&lt;br /&gt;
   unlock table&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CUT!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So, the idea was that some shows it might just be easier to get from Bittorrent than to wait for them to show up on television.  Also, they are usually compressed better, are at higher quality, and usually have the commercials completely removed from them.  So it would be nice if there was an easy way to see what could be gotten via Bittorrent.  (Might also be useful to be able to get a list of episodes from places like wikipedia, with description, original air date, episode number, etc.)&lt;br /&gt;
&lt;br /&gt;
So, I need a way to access The Pirate Bay&amp;#039;s database automatically.  Recently, they have hinted at an API that will be useful for searching their database, but I can&amp;#039;t currently find any details about that.  For the time being, I may have to make my own HTML scraping version.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
http://thepiratebay.org/search.php?q=&amp;lt;searchterms&amp;gt;&amp;amp;page=&amp;lt;resultpagenum&amp;gt;&amp;amp;orderby=&amp;lt;orderkey&amp;gt;&lt;br /&gt;
&lt;br /&gt;
orderkey can be name, date, size, se, le&lt;br /&gt;
page starts at 0.&lt;br /&gt;
&lt;br /&gt;
The table we want has an id of searchResult&lt;br /&gt;
&lt;br /&gt;
Thence follows a thead row, and then rows of results.&lt;br /&gt;
&lt;br /&gt;
Each result row is of form (has the following cells with examples):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;category link&amp;gt;: &amp;quot;&amp;lt;a href=&amp;quot;CATLINK&amp;quot; title=&amp;quot;More from this category&amp;quot;&amp;gt;CATEGORY&amp;lt;/a&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;detail link and title&amp;gt;: &amp;quot;&amp;lt;a href=&amp;quot;DESCLINK&amp;quot; class=&amp;quot;detLink&amp;quot; title=&amp;quot;Details for TITLE&amp;quot;&amp;gt;TITLE&amp;lt;/a&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;date and time of upload&amp;gt;: &amp;quot;DATE&amp;amp;amp;nbsp;TIME&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;download link&amp;gt;: &amp;quot;&amp;lt;a href=&amp;quot;DLLINK&amp;quot; title=&amp;quot;Download this torrent&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;IMGLINK&amp;quot; class=&amp;quot;dl&amp;quot; alt=&amp;quot;Download&amp;quot; /&amp;gt;&amp;lt;/a&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;size&amp;gt;: &amp;quot;SIZENUM&amp;amp;amp;nbsp;SIZEUNIT&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;seeders&amp;gt;: &amp;quot;SENUM&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;leachers&amp;gt;: &amp;quot;LENUM&amp;quot;&lt;br /&gt;
&lt;br /&gt;
So, from that, we want to extract CATEGORY, TITLE, DATE, TIME, DLLINK, SIZENUM, SIZEUNIT, SENUM, LENUM.  Should be a cinch.&lt;br /&gt;
&lt;br /&gt;
The last row is empty in the source, but gets magically javascriptally filled in to be the page selector.  I wouldn&amp;#039;t worry about it for now.&lt;br /&gt;
&lt;br /&gt;
Note that all of this is likely to change as The Pirate Bay changes how they do things to be more AJAXy and APIy.  Hopefully when that occurs, this will all fail gracefully, we&amp;#039;ll know, and we can fix it to use the new APIs.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=Bittorrent&amp;diff=2145</id>
		<title>Bittorrent</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Bittorrent&amp;diff=2145"/>
		<updated>2009-09-24T05:18:50Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Use modules&lt;br /&gt;
*XML::RSS::Parser::Lite&lt;br /&gt;
*LWP::UserAgent&lt;br /&gt;
*DBI&lt;br /&gt;
*URI&lt;br /&gt;
*HTML::Entities&lt;br /&gt;
*HTML::TokeParser::Simple&lt;br /&gt;
*WWW::Search::Mininova&lt;br /&gt;
*Net::BitTorrent&lt;br /&gt;
*POSIX qw(setsid)&lt;br /&gt;
&lt;br /&gt;
 daemonize&lt;br /&gt;
 set up sigint handler to set killflag&lt;br /&gt;
 connect to db&lt;br /&gt;
 set up torrent queue&lt;br /&gt;
 while not killflag&lt;br /&gt;
   processqueue&lt;br /&gt;
   if its been a second, checktorrentstates&lt;br /&gt;
   if its been a minute, checkfornewtorrents&lt;br /&gt;
 stop torrent queue&lt;br /&gt;
 checktorrentstates&lt;br /&gt;
 destroy torrent queue&lt;br /&gt;
 quit&lt;br /&gt;
&lt;br /&gt;
 checkfornewtorrents:&lt;br /&gt;
   lock table&lt;br /&gt;
   get all torrents with state of torrentretrieved&lt;br /&gt;
   foreach new torrent&lt;br /&gt;
     add to queue and update torrent state&lt;br /&gt;
   unlock table&lt;br /&gt;
&lt;br /&gt;
checktorrentstates:&lt;br /&gt;
   lock table&lt;br /&gt;
   calculate stats for each torrent in the queue&lt;br /&gt;
   check if we were told to pause this torrent, if so, remove that torrent from the queue&lt;br /&gt;
   update the table with the latest stats.&lt;br /&gt;
   if necessary, remove from torrent queue. if not connected anymore, torrentretrieved/unconnected.  If paused, paused/unconnected. If failed, torrentretrieved/unconnected.&lt;br /&gt;
   unlock table&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CUT!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So, the idea was that some shows it might just be easier to get from Bittorrent than to wait for them to show up on television.  Also, they are usually compressed better, are at higher quality, and usually have the commercials completely removed from them.  So it would be nice if there was an easy way to see what could be gotten via Bittorrent.  (Might also be useful to be able to get a list of episodes from places like wikipedia, with description, original air date, episode number, etc.)&lt;br /&gt;
&lt;br /&gt;
So, I need a way to access The Pirate Bay&amp;#039;s database automatically.  Recently, they have hinted at an API that will be useful for searching their database, but I can&amp;#039;t currently find any details about that.  For the time being, I may have to make my own HTML scraping version.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
http://thepiratebay.org/search.php?q=&amp;lt;searchterms&amp;gt;&amp;amp;page=&amp;lt;resultpagenum&amp;gt;&amp;amp;orderby=&amp;lt;orderkey&amp;gt;&lt;br /&gt;
&lt;br /&gt;
orderkey can be name, date, size, se, le&lt;br /&gt;
page starts at 0.&lt;br /&gt;
&lt;br /&gt;
The table we want has an id of searchResult&lt;br /&gt;
&lt;br /&gt;
Thence follows a thead row, and then rows of results.&lt;br /&gt;
&lt;br /&gt;
Each result row is of form (has the following cells with examples):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;category link&amp;gt;: &amp;quot;&amp;lt;a href=&amp;quot;CATLINK&amp;quot; title=&amp;quot;More from this category&amp;quot;&amp;gt;CATEGORY&amp;lt;/a&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;detail link and title&amp;gt;: &amp;quot;&amp;lt;a href=&amp;quot;DESCLINK&amp;quot; class=&amp;quot;detLink&amp;quot; title=&amp;quot;Details for TITLE&amp;quot;&amp;gt;TITLE&amp;lt;/a&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;date and time of upload&amp;gt;: &amp;quot;DATE&amp;amp;amp;nbsp;TIME&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;download link&amp;gt;: &amp;quot;&amp;lt;a href=&amp;quot;DLLINK&amp;quot; title=&amp;quot;Download this torrent&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;IMGLINK&amp;quot; class=&amp;quot;dl&amp;quot; alt=&amp;quot;Download&amp;quot; /&amp;gt;&amp;lt;/a&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;size&amp;gt;: &amp;quot;SIZENUM&amp;amp;amp;nbsp;SIZEUNIT&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;seeders&amp;gt;: &amp;quot;SENUM&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;leachers&amp;gt;: &amp;quot;LENUM&amp;quot;&lt;br /&gt;
&lt;br /&gt;
So, from that, we want to extract CATEGORY, TITLE, DATE, TIME, DLLINK, SIZENUM, SIZEUNIT, SENUM, LENUM.  Should be a cinch.&lt;br /&gt;
&lt;br /&gt;
The last row is empty in the source, but gets magically javascriptally filled in to be the page selector.  I wouldn&amp;#039;t worry about it for now.&lt;br /&gt;
&lt;br /&gt;
Note that all of this is likely to change as The Pirate Bay changes how they do things to be more AJAXy and APIy.  Hopefully when that occurs, this will all fail gracefully, we&amp;#039;ll know, and we can fix it to use the new APIs.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=Fernseher&amp;diff=2144</id>
		<title>Fernseher</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Fernseher&amp;diff=2144"/>
		<updated>2009-05-27T22:41:13Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Fernseher is an all encompassing set of scripts to solve all the world&amp;#039;s problems, determine whether P really does equal NP, make me lots of money, and make a fool of myself, all at once.  I imagine it will be useful to no one, do exactly what no one wants it to do, and be accused of murder and money laundering multiple times.  If it does what you want it to do, reconsider, because you are probably wrong.  It won&amp;#039;t even do what I want it to do, and I wrote the damn thing.&lt;br /&gt;
&lt;br /&gt;
In summation, your probably don&amp;#039;t really want this set of crap on your box, and if you put it on your box, it is likely that your computer will implode, and almost certain that all your base will belong to me.&lt;br /&gt;
&lt;br /&gt;
That said, I am using this wiki to keep track of ideas I have for the various components involved, what they do, what they should do, how to use them, how to improve them, and what will happen if you don&amp;#039;t use them with everything else.  I am also hoping to do some rudimentary interface design here for the various front ends, as well as backend database design so I know how its all supposed to go together.  I may also put any information I have on the various utilities I plan on using to interface with the tuner cards, as well as interfaces to play music and video, adjust channels, volume, use bittorrent, etc.  &lt;br /&gt;
&lt;br /&gt;
*Festina lente  (hurry slowly)&lt;br /&gt;
*Id est  (that is)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Backend/Server Components===&lt;br /&gt;
&lt;br /&gt;
*[[durchcoderd]]&lt;br /&gt;
*[[herrd]]&lt;br /&gt;
*[[rissd]]&lt;br /&gt;
*[[seherd]]&lt;br /&gt;
*[[unterhalterd]]&lt;br /&gt;
&lt;br /&gt;
===Frontend/Client Components===&lt;br /&gt;
&lt;br /&gt;
*[[nackt]]&lt;br /&gt;
*[[spieler]]&lt;br /&gt;
*[[wunscher]]&lt;br /&gt;
&lt;br /&gt;
===Database Design and Synchronization===&lt;br /&gt;
&lt;br /&gt;
*[[Tables]]&lt;br /&gt;
*[[Managed Objects]]&lt;br /&gt;
*[[Queues]]&lt;br /&gt;
*[[Synchronization]]&lt;br /&gt;
*[[Clients]]&lt;br /&gt;
&lt;br /&gt;
===Components to Harness===&lt;br /&gt;
&lt;br /&gt;
*[[libgpod]]&lt;br /&gt;
*[[vlc]]&lt;br /&gt;
*[[mplayer]]&lt;br /&gt;
*[[mpg123]]&lt;br /&gt;
*[[mencoder]]&lt;br /&gt;
*[[curses]]&lt;br /&gt;
*[[ajax]]&lt;br /&gt;
*[[firefox]]&lt;br /&gt;
*[[wiimote mouse]]&lt;br /&gt;
*[[tvshows from online]]&lt;br /&gt;
*[http://www.gnu.org/software/make/manual/make.html#Automatic-Prerequisites Auto deps for makefiles]&lt;br /&gt;
*[http://www.fftw.org/doc/Complex-One_002dDimensional-DFTs.html fftw tutorial]&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Discrete_Fourier_transform stuff on DFT]&lt;br /&gt;
*[http://www.grinninglizard.com/tinyxmldocs/index.html TinyXML]&lt;br /&gt;
&lt;br /&gt;
===Other Related Projects===&lt;br /&gt;
&lt;br /&gt;
*[[bittorrent]]&lt;br /&gt;
*[[blogging queue]]&lt;br /&gt;
*[[mpr stream capture]]&lt;br /&gt;
*[[photo management]]&lt;br /&gt;
*[[email grabber]]&lt;br /&gt;
*[[tag clouds]]&lt;br /&gt;
*[[remote control device]]&lt;br /&gt;
*[[dialup server system]]&lt;br /&gt;
*[[distributed internal network]]&lt;br /&gt;
*[[dvdlookup.org]]&lt;br /&gt;
*[[playlist]]&lt;br /&gt;
*[[slackpkg plus plus]]&lt;br /&gt;
*[[gkrellm replacement]]&lt;br /&gt;
*[[book cataloging]]&lt;br /&gt;
*[[some avr stuff]]&lt;br /&gt;
*[[modjs]]&lt;br /&gt;
*[[thoughs on avr event scheduling]]&lt;br /&gt;
*[[MIDI and the organ project]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Stuff to get working on my computers===&lt;br /&gt;
*[[xvmc]]&lt;br /&gt;
*[[nis]]&lt;br /&gt;
*[[proper dhcp]]&lt;br /&gt;
*[[special fw on router]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=Fernseher&amp;diff=2135</id>
		<title>Fernseher</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Fernseher&amp;diff=2135"/>
		<updated>2009-03-07T04:35:05Z</updated>

		<summary type="html">&lt;p&gt;Admin: /* Components to Harness */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Fernseher is an all encompassing set of scripts to solve all the world&amp;#039;s problems, determine whether P really does equal NP, make me lots of money, and make a fool of myself, all at once.  I imagine it will be useful to no one, do exactly what no one wants it to do, and be accused of murder and money laundering multiple times.  If it does what you want it to do, reconsider, because you are probably wrong.  It won&amp;#039;t even do what I want it to do, and I wrote the damn thing.&lt;br /&gt;
&lt;br /&gt;
In summation, your probably don&amp;#039;t really want this set of crap on your box, and if you put it on your box, it is likely that your computer will implode, and almost certain that all your base will belong to me.&lt;br /&gt;
&lt;br /&gt;
That said, I am using this wiki to keep track of ideas I have for the various components involved, what they do, what they should do, how to use them, how to improve them, and what will happen if you don&amp;#039;t use them with everything else.  I am also hoping to do some rudimentary interface design here for the various front ends, as well as backend database design so I know how its all supposed to go together.  I may also put any information I have on the various utilities I plan on using to interface with the tuner cards, as well as interfaces to play music and video, adjust channels, volume, use bittorrent, etc.  &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Backend/Server Components===&lt;br /&gt;
&lt;br /&gt;
*[[durchcoderd]]&lt;br /&gt;
*[[herrd]]&lt;br /&gt;
*[[rissd]]&lt;br /&gt;
*[[seherd]]&lt;br /&gt;
*[[unterhalterd]]&lt;br /&gt;
&lt;br /&gt;
===Frontend/Client Components===&lt;br /&gt;
&lt;br /&gt;
*[[nackt]]&lt;br /&gt;
*[[spieler]]&lt;br /&gt;
*[[wunscher]]&lt;br /&gt;
&lt;br /&gt;
===Database Design and Synchronization===&lt;br /&gt;
&lt;br /&gt;
*[[Tables]]&lt;br /&gt;
*[[Managed Objects]]&lt;br /&gt;
*[[Queues]]&lt;br /&gt;
*[[Synchronization]]&lt;br /&gt;
*[[Clients]]&lt;br /&gt;
&lt;br /&gt;
===Components to Harness===&lt;br /&gt;
&lt;br /&gt;
*[[libgpod]]&lt;br /&gt;
*[[vlc]]&lt;br /&gt;
*[[mplayer]]&lt;br /&gt;
*[[mpg123]]&lt;br /&gt;
*[[mencoder]]&lt;br /&gt;
*[[curses]]&lt;br /&gt;
*[[ajax]]&lt;br /&gt;
*[[firefox]]&lt;br /&gt;
*[[wiimote mouse]]&lt;br /&gt;
*[[tvshows from online]]&lt;br /&gt;
*[http://www.gnu.org/software/make/manual/make.html#Automatic-Prerequisites Auto deps for makefiles]&lt;br /&gt;
*[http://www.fftw.org/doc/Complex-One_002dDimensional-DFTs.html fftw tutorial]&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Discrete_Fourier_transform stuff on DFT]&lt;br /&gt;
*[http://www.grinninglizard.com/tinyxmldocs/index.html TinyXML]&lt;br /&gt;
&lt;br /&gt;
===Other Related Projects===&lt;br /&gt;
&lt;br /&gt;
*[[bittorrent]]&lt;br /&gt;
*[[blogging queue]]&lt;br /&gt;
*[[mpr stream capture]]&lt;br /&gt;
*[[photo management]]&lt;br /&gt;
*[[email grabber]]&lt;br /&gt;
*[[tag clouds]]&lt;br /&gt;
*[[remote control device]]&lt;br /&gt;
*[[dialup server system]]&lt;br /&gt;
*[[distributed internal network]]&lt;br /&gt;
*[[dvdlookup.org]]&lt;br /&gt;
*[[playlist]]&lt;br /&gt;
*[[slackpkg plus plus]]&lt;br /&gt;
*[[gkrellm replacement]]&lt;br /&gt;
*[[book cataloging]]&lt;br /&gt;
*[[some avr stuff]]&lt;br /&gt;
*[[modjs]]&lt;br /&gt;
*[[thoughs on avr event scheduling]]&lt;br /&gt;
*[[MIDI and the organ project]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Stuff to get working on my computers===&lt;br /&gt;
*[[xvmc]]&lt;br /&gt;
*[[nis]]&lt;br /&gt;
*[[proper dhcp]]&lt;br /&gt;
*[[special fw on router]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=Fernseher&amp;diff=2134</id>
		<title>Fernseher</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Fernseher&amp;diff=2134"/>
		<updated>2009-03-06T06:47:55Z</updated>

		<summary type="html">&lt;p&gt;Admin: /* Components to Harness */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Fernseher is an all encompassing set of scripts to solve all the world&amp;#039;s problems, determine whether P really does equal NP, make me lots of money, and make a fool of myself, all at once.  I imagine it will be useful to no one, do exactly what no one wants it to do, and be accused of murder and money laundering multiple times.  If it does what you want it to do, reconsider, because you are probably wrong.  It won&amp;#039;t even do what I want it to do, and I wrote the damn thing.&lt;br /&gt;
&lt;br /&gt;
In summation, your probably don&amp;#039;t really want this set of crap on your box, and if you put it on your box, it is likely that your computer will implode, and almost certain that all your base will belong to me.&lt;br /&gt;
&lt;br /&gt;
That said, I am using this wiki to keep track of ideas I have for the various components involved, what they do, what they should do, how to use them, how to improve them, and what will happen if you don&amp;#039;t use them with everything else.  I am also hoping to do some rudimentary interface design here for the various front ends, as well as backend database design so I know how its all supposed to go together.  I may also put any information I have on the various utilities I plan on using to interface with the tuner cards, as well as interfaces to play music and video, adjust channels, volume, use bittorrent, etc.  &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Backend/Server Components===&lt;br /&gt;
&lt;br /&gt;
*[[durchcoderd]]&lt;br /&gt;
*[[herrd]]&lt;br /&gt;
*[[rissd]]&lt;br /&gt;
*[[seherd]]&lt;br /&gt;
*[[unterhalterd]]&lt;br /&gt;
&lt;br /&gt;
===Frontend/Client Components===&lt;br /&gt;
&lt;br /&gt;
*[[nackt]]&lt;br /&gt;
*[[spieler]]&lt;br /&gt;
*[[wunscher]]&lt;br /&gt;
&lt;br /&gt;
===Database Design and Synchronization===&lt;br /&gt;
&lt;br /&gt;
*[[Tables]]&lt;br /&gt;
*[[Managed Objects]]&lt;br /&gt;
*[[Queues]]&lt;br /&gt;
*[[Synchronization]]&lt;br /&gt;
*[[Clients]]&lt;br /&gt;
&lt;br /&gt;
===Components to Harness===&lt;br /&gt;
&lt;br /&gt;
*[[libgpod]]&lt;br /&gt;
*[[vlc]]&lt;br /&gt;
*[[mplayer]]&lt;br /&gt;
*[[mpg123]]&lt;br /&gt;
*[[mencoder]]&lt;br /&gt;
*[[curses]]&lt;br /&gt;
*[[ajax]]&lt;br /&gt;
*[[firefox]]&lt;br /&gt;
*[[wiimote mouse]]&lt;br /&gt;
*[[tvshows from online]]&lt;br /&gt;
*[http://www.gnu.org/software/make/manual/make.html#Automatic-Prerequisites Auto deps for makefiles]&lt;br /&gt;
*[http://www.fftw.org/doc/Complex-One_002dDimensional-DFTs.html fftw tutorial]&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Discrete_Fourier_transform stuff on DFT]&lt;br /&gt;
&lt;br /&gt;
===Other Related Projects===&lt;br /&gt;
&lt;br /&gt;
*[[bittorrent]]&lt;br /&gt;
*[[blogging queue]]&lt;br /&gt;
*[[mpr stream capture]]&lt;br /&gt;
*[[photo management]]&lt;br /&gt;
*[[email grabber]]&lt;br /&gt;
*[[tag clouds]]&lt;br /&gt;
*[[remote control device]]&lt;br /&gt;
*[[dialup server system]]&lt;br /&gt;
*[[distributed internal network]]&lt;br /&gt;
*[[dvdlookup.org]]&lt;br /&gt;
*[[playlist]]&lt;br /&gt;
*[[slackpkg plus plus]]&lt;br /&gt;
*[[gkrellm replacement]]&lt;br /&gt;
*[[book cataloging]]&lt;br /&gt;
*[[some avr stuff]]&lt;br /&gt;
*[[modjs]]&lt;br /&gt;
*[[thoughs on avr event scheduling]]&lt;br /&gt;
*[[MIDI and the organ project]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Stuff to get working on my computers===&lt;br /&gt;
*[[xvmc]]&lt;br /&gt;
*[[nis]]&lt;br /&gt;
*[[proper dhcp]]&lt;br /&gt;
*[[special fw on router]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=Fernseher&amp;diff=2133</id>
		<title>Fernseher</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Fernseher&amp;diff=2133"/>
		<updated>2009-03-06T06:47:06Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Fernseher is an all encompassing set of scripts to solve all the world&amp;#039;s problems, determine whether P really does equal NP, make me lots of money, and make a fool of myself, all at once.  I imagine it will be useful to no one, do exactly what no one wants it to do, and be accused of murder and money laundering multiple times.  If it does what you want it to do, reconsider, because you are probably wrong.  It won&amp;#039;t even do what I want it to do, and I wrote the damn thing.&lt;br /&gt;
&lt;br /&gt;
In summation, your probably don&amp;#039;t really want this set of crap on your box, and if you put it on your box, it is likely that your computer will implode, and almost certain that all your base will belong to me.&lt;br /&gt;
&lt;br /&gt;
That said, I am using this wiki to keep track of ideas I have for the various components involved, what they do, what they should do, how to use them, how to improve them, and what will happen if you don&amp;#039;t use them with everything else.  I am also hoping to do some rudimentary interface design here for the various front ends, as well as backend database design so I know how its all supposed to go together.  I may also put any information I have on the various utilities I plan on using to interface with the tuner cards, as well as interfaces to play music and video, adjust channels, volume, use bittorrent, etc.  &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Backend/Server Components===&lt;br /&gt;
&lt;br /&gt;
*[[durchcoderd]]&lt;br /&gt;
*[[herrd]]&lt;br /&gt;
*[[rissd]]&lt;br /&gt;
*[[seherd]]&lt;br /&gt;
*[[unterhalterd]]&lt;br /&gt;
&lt;br /&gt;
===Frontend/Client Components===&lt;br /&gt;
&lt;br /&gt;
*[[nackt]]&lt;br /&gt;
*[[spieler]]&lt;br /&gt;
*[[wunscher]]&lt;br /&gt;
&lt;br /&gt;
===Database Design and Synchronization===&lt;br /&gt;
&lt;br /&gt;
*[[Tables]]&lt;br /&gt;
*[[Managed Objects]]&lt;br /&gt;
*[[Queues]]&lt;br /&gt;
*[[Synchronization]]&lt;br /&gt;
*[[Clients]]&lt;br /&gt;
&lt;br /&gt;
===Components to Harness===&lt;br /&gt;
&lt;br /&gt;
*[[libgpod]]&lt;br /&gt;
*[[vlc]]&lt;br /&gt;
*[[mplayer]]&lt;br /&gt;
*[[mpg123]]&lt;br /&gt;
*[[mencoder]]&lt;br /&gt;
*[[curses]]&lt;br /&gt;
*[[ajax]]&lt;br /&gt;
*[[firefox]]&lt;br /&gt;
*[[wiimote mouse]]&lt;br /&gt;
*[[tvshows from online]]&lt;br /&gt;
*[http://www.gnu.org/software/make/manual/make.html#Automatic-Prerequisites Auto deps for makefiles]&lt;br /&gt;
&lt;br /&gt;
===Other Related Projects===&lt;br /&gt;
&lt;br /&gt;
*[[bittorrent]]&lt;br /&gt;
*[[blogging queue]]&lt;br /&gt;
*[[mpr stream capture]]&lt;br /&gt;
*[[photo management]]&lt;br /&gt;
*[[email grabber]]&lt;br /&gt;
*[[tag clouds]]&lt;br /&gt;
*[[remote control device]]&lt;br /&gt;
*[[dialup server system]]&lt;br /&gt;
*[[distributed internal network]]&lt;br /&gt;
*[[dvdlookup.org]]&lt;br /&gt;
*[[playlist]]&lt;br /&gt;
*[[slackpkg plus plus]]&lt;br /&gt;
*[[gkrellm replacement]]&lt;br /&gt;
*[[book cataloging]]&lt;br /&gt;
*[[some avr stuff]]&lt;br /&gt;
*[[modjs]]&lt;br /&gt;
*[[thoughs on avr event scheduling]]&lt;br /&gt;
*[[MIDI and the organ project]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Stuff to get working on my computers===&lt;br /&gt;
*[[xvmc]]&lt;br /&gt;
*[[nis]]&lt;br /&gt;
*[[proper dhcp]]&lt;br /&gt;
*[[special fw on router]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=MIDI_and_the_organ_project&amp;diff=2126</id>
		<title>MIDI and the organ project</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=MIDI_and_the_organ_project&amp;diff=2126"/>
		<updated>2009-02-27T22:26:37Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[http://sessrumnir.net/organs/trunk/ SVN trunk for organ code]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====MIDI and the organ====&lt;br /&gt;
MIDI standard is out there. Also good is the RTP-MIDI RFC, for putting MIDI data into a stream and whatnot.&lt;br /&gt;
&lt;br /&gt;
The basics, as I think we will be using them:&lt;br /&gt;
&lt;br /&gt;
Packet basics (we&amp;#039;ll only be using 3 byte packet forms):&lt;br /&gt;
&lt;br /&gt;
 1 &amp;lt;3: opcode&amp;gt; &amp;lt;4: channel&amp;gt; 0 &amp;lt;7: arg1&amp;gt; 0 &amp;lt;7: arg2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essentially, a status byte, with the high bit on (0x80-0xFF), and two argument bytes, with the high bit off (0x00-0x7F).&lt;br /&gt;
&lt;br /&gt;
opcodes of relevance:&lt;br /&gt;
*0x0: key off.  arg1 is the key number, arg2 is the velocity.  We will always use velocity of 0x40.&lt;br /&gt;
*0x1: key on. arg1 is the key number, arg2 is the velocity.  We will always use the velocity of 0x40.&lt;br /&gt;
*0x3: control change.  arg1 is the control number (0x01 is modulation wheel, 0x0B is the expression pedal), arg2 is the new control value, from 0x00 - 0x7F (Note:  If we need more than 127 steps, add 0x20 to the control number, and thats the control number to use to send the least significant 7-bits of the value.  The value sent with the base control number is considered to be the most significant 7-bits of the value.  This ensures that if just read the base control number, you set the control to approximately the correct percentage of fully off/fully on.)&lt;br /&gt;
&lt;br /&gt;
For channels, we will use:&lt;br /&gt;
*0x0: Great (Solo) Manual&lt;br /&gt;
*0x1: Swell (Accompaniment) Manual&lt;br /&gt;
*0x2: Choir (below Great) Manual, if present&lt;br /&gt;
*0x3: Solo (above Swell) Manual, if present&lt;br /&gt;
*0x4: Echo (above Solo) Manual, if present&lt;br /&gt;
*0x5: Third Pedalboard, if present, or the auxilary stop channel, covering additional stops for all manuals and pedals.&lt;br /&gt;
*0x6: Second Pedalboard, if present, or the main stop channel, covering all stops for all manuals and pedals.&lt;br /&gt;
*0x7: Main Pedalboard&lt;br /&gt;
*0x8: Great stops only&lt;br /&gt;
*0x9: Swell stops only&lt;br /&gt;
*0xA: Choir stops only&lt;br /&gt;
*0xB: Solo stops only&lt;br /&gt;
*0xC: Echo stops only&lt;br /&gt;
*0xD: Third Pedalboard stops only&lt;br /&gt;
*0xE: Second Pedalboard stops only&lt;br /&gt;
*0xF: Main Pedalboard stops only&lt;br /&gt;
&lt;br /&gt;
Our initial organ will only use channels 0x0-0x1, 0x6-0x7.&lt;br /&gt;
&lt;br /&gt;
Each keyboard channel (0x0-0x7) gets its own control set.  For our organ, where the modulation wheel and expression pedal control all divisions equally, each control change gets sent for each active channel... or maybe just for great, and the software will figure out that they control all the stuff.  Note, we may not hook up the modulation wheel when we begin.  It&amp;#039;d be kinda a lot harder to make work right, I think.&lt;br /&gt;
&lt;br /&gt;
We will be building channel combination boards, that take an enable and a sub-channel address, and read back the contents of the addressed buffer.  4 bits of address gets 16 buffers.  At 8 bits per buffer, thats 128 inputs for each channel.  That matches with midi&amp;#039;s numbering scheme.  Alternatively, if you take the LSB of the true channel, and feed it to the 4th address bit of the channel board, and only decode the top 3 bits of the channel to determine channel board enable, you can duplex your channel boards, since we will only be using under 64 inputs per channel.  The AVR firmware will have an MIDI offset value for each channel to add to the number received from the board before sending as part of a MIDI command. For most subchannels, this will be 36.  Will probably just use an offset of 0 for the stop channels.&lt;br /&gt;
&lt;br /&gt;
Using the split channel board design, we only need two channel boards for our organ.  The main board will be designed to use the channel boards in split mode, and will never probably use the split-mode stop channels (0x8-0xF), so it will only have 4 plugs for channel boards, 0x0-0x1, 0x2-0x3, 0x4-0x5, and 0x6-0x7.  The initial organ will only use the first and last of these plugs, so we don&amp;#039;t even need to populate the board positions for the other channel boards.&lt;br /&gt;
&lt;br /&gt;
Also, I think we might want to put all the switch pull-up resistors on the manuals themselves, soldered to the key tabs.  This will eliminate a lot of crap on the boards, and keep the board design uniform, since the different keys will need different pull-ups.  The manuals, with their 5k internal resistance, will need 50k (or so) pull-ups to 5V, and the pedals and stops, with no internal resistance, will need just 10k (or so) pull-ups to 5V.  Each manual will get a separate power and ground plug for the pull-ups and grounds, so the connectors for the keys don&amp;#039;t need a pin for ground or power, I don&amp;#039;t think... Though if there is room, I guess we could send it along there, too.  Can&amp;#039;t hurt anything, provided the wires support enough current for the crazy case of all the stop pulled or keys pressed or something.  Given a max of 64 inputs to a half-channel, and only 61 keys on a full manual, we can use 2x36 pin connectors for the manuals, and 1x36 pin connector for the pedalboards, and 1x36 pin connector for the stop boards.  Thats 6 total 36 pin connectors, male and female, solder cup and through-hole.&lt;br /&gt;
&lt;br /&gt;
Channel board to main board connectors will have an 8-bit data bus, 4-bit address bus, a power, ground, enable, and identify(?) pins (16 total).  Should be able to use IDC connectors and ribbon cable here.&lt;br /&gt;
&lt;br /&gt;
===Simple algorithm for key change detection===&lt;br /&gt;
After reading a byte from the buffers, we xor it with the copy of the byte from last time, then store the new version in the copy location.  We then start looking at the lsb of the xor&amp;#039;ed byte.  If its a 1, we send a key on if the lsb of the read byte is a 1, and a key off if the lsb of the read byte is a 0.  We then shift right and do that again.  We do that 8 times, once for each bit in that byte.  Then we can move on to the next valid address for that channel, write out the address, read back the buffer value, xor, store, analyze, etc.  Note, we can speed this up by checking if the xor byte is identically 0x00, in which case we don&amp;#039;t have to analyze it, it hasn&amp;#039;t changed.  This will be the usual case!  Only occasionally (in sample time), will things change, and usually only on one bit, and thus one buffer, amongst all the channels and buffers.  This should help us keep up to speed.&lt;br /&gt;
&lt;br /&gt;
Once we are done reading all the channel board buffers, we can check the expression pedals and other variable controls for new values, and possibly send control change events.  After all this, we actually send the MIDI bytes as we have determined them to need to be for this time around, and go to sleep until our next sample time.&lt;br /&gt;
&lt;br /&gt;
Not sure what the latency of the serial to USB conversion is in FTDI, but it could be as bad as a single byte in a single USB message....  Anyway, we want to build a buffer of bytes that need to get send over each sample time, with the RTP-MIDI spec used to make it a stream type thing.  This means: packet length, &amp;quot;timestamp&amp;quot;, first MIDI event, relative timestamps (should all be zero), subsequent MIDI events.&lt;br /&gt;
&lt;br /&gt;
===Chips to use===&lt;br /&gt;
*16x? 74HCT540  for the octal tri-state buffers, inverting (0.54, 20 pin dip)&lt;br /&gt;
*1x? 74HCT138  for 1 to 8 decoder (0.40, 16 pin dip)&lt;br /&gt;
*1x? 74HCT154  for 1 to 16 decoder (0.80, 24 pin dip)&lt;br /&gt;
*1x ATMega164P-20P for AVR controller, 20MHz, (4.82, 40 pin dip)&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=MIDI_and_the_organ_project&amp;diff=2123</id>
		<title>MIDI and the organ project</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=MIDI_and_the_organ_project&amp;diff=2123"/>
		<updated>2009-02-23T05:06:37Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MIDI standard is out there. Also good is the RTP-MIDI RFC, for putting MIDI data into a stream and whatnot.&lt;br /&gt;
&lt;br /&gt;
The basics, as I think we will be using them:&lt;br /&gt;
&lt;br /&gt;
Packet basics (we&amp;#039;ll only be using 3 byte packet forms):&lt;br /&gt;
&lt;br /&gt;
 1 &amp;lt;3: opcode&amp;gt; &amp;lt;4: channel&amp;gt; 0 &amp;lt;7: arg1&amp;gt; 0 &amp;lt;7: arg2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essentially, a status byte, with the high bit on (0x80-0xFF), and two argument bytes, with the high bit off (0x00-0x7F).&lt;br /&gt;
&lt;br /&gt;
opcodes of relevance:&lt;br /&gt;
*0x0: key off.  arg1 is the key number, arg2 is the velocity.  We will always use velocity of 0x40.&lt;br /&gt;
*0x1: key on. arg1 is the key number, arg2 is the velocity.  We will always use the velocity of 0x40.&lt;br /&gt;
*0x3: control change.  arg1 is the control number (0x01 is modulation wheel, 0x0B is the expression pedal), arg2 is the new control value, from 0x00 - 0x7F (Note:  If we need more than 127 steps, add 0x20 to the control number, and thats the control number to use to send the least significant 7-bits of the value.  The value sent with the base control number is considered to be the most significant 7-bits of the value.  This ensures that if just read the base control number, you set the control to approximately the correct percentage of fully off/fully on.)&lt;br /&gt;
&lt;br /&gt;
For channels, we will use:&lt;br /&gt;
*0x0: Great (Solo) Manual&lt;br /&gt;
*0x1: Swell (Accompaniment) Manual&lt;br /&gt;
*0x2: Choir (below Great) Manual, if present&lt;br /&gt;
*0x3: Solo (above Swell) Manual, if present&lt;br /&gt;
*0x4: Echo (above Solo) Manual, if present&lt;br /&gt;
*0x5: Third Pedalboard, if present, or the auxilary stop channel, covering additional stops for all manuals and pedals.&lt;br /&gt;
*0x6: Second Pedalboard, if present, or the main stop channel, covering all stops for all manuals and pedals.&lt;br /&gt;
*0x7: Main Pedalboard&lt;br /&gt;
*0x8: Great stops only&lt;br /&gt;
*0x9: Swell stops only&lt;br /&gt;
*0xA: Choir stops only&lt;br /&gt;
*0xB: Solo stops only&lt;br /&gt;
*0xC: Echo stops only&lt;br /&gt;
*0xD: Third Pedalboard stops only&lt;br /&gt;
*0xE: Second Pedalboard stops only&lt;br /&gt;
*0xF: Main Pedalboard stops only&lt;br /&gt;
&lt;br /&gt;
Our initial organ will only use channels 0x0-0x1, 0x6-0x7.&lt;br /&gt;
&lt;br /&gt;
Each keyboard channel (0x0-0x7) gets its own control set.  For our organ, where the modulation wheel and expression pedal control all divisions equally, each control change gets sent for each active channel... or maybe just for great, and the software will figure out that they control all the stuff.  Note, we may not hook up the modulation wheel when we begin.  It&amp;#039;d be kinda a lot harder to make work right, I think.&lt;br /&gt;
&lt;br /&gt;
We will be building channel combination boards, that take an enable and a sub-channel address, and read back the contents of the addressed buffer.  4 bits of address gets 16 buffers.  At 8 bits per buffer, thats 128 inputs for each channel.  That matches with midi&amp;#039;s numbering scheme.  Alternatively, if you take the LSB of the true channel, and feed it to the 4th address bit of the channel board, and only decode the top 3 bits of the channel to determine channel board enable, you can duplex your channel boards, since we will only be using under 64 inputs per channel.  The AVR firmware will have an MIDI offset value for each channel to add to the number received from the board before sending as part of a MIDI command. For most subchannels, this will be 36.  Will probably just use an offset of 0 for the stop channels.&lt;br /&gt;
&lt;br /&gt;
Using the split channel board design, we only need two channel boards for our organ.  The main board will be designed to use the channel boards in split mode, and will never probably use the split-mode stop channels (0x8-0xF), so it will only have 4 plugs for channel boards, 0x0-0x1, 0x2-0x3, 0x4-0x5, and 0x6-0x7.  The initial organ will only use the first and last of these plugs, so we don&amp;#039;t even need to populate the board positions for the other channel boards.&lt;br /&gt;
&lt;br /&gt;
Also, I think we might want to put all the switch pull-up resistors on the manuals themselves, soldered to the key tabs.  This will eliminate a lot of crap on the boards, and keep the board design uniform, since the different keys will need different pull-ups.  The manuals, with their 5k internal resistance, will need 50k (or so) pull-ups to 5V, and the pedals and stops, with no internal resistance, will need just 10k (or so) pull-ups to 5V.  Each manual will get a separate power and ground plug for the pull-ups and grounds, so the connectors for the keys don&amp;#039;t need a pin for ground or power, I don&amp;#039;t think... Though if there is room, I guess we could send it along there, too.  Can&amp;#039;t hurt anything, provided the wires support enough current for the crazy case of all the stop pulled or keys pressed or something.  Given a max of 64 inputs to a half-channel, and only 61 keys on a full manual, we can use 2x36 pin connectors for the manuals, and 1x36 pin connector for the pedalboards, and 1x36 pin connector for the stop boards.  Thats 6 total 36 pin connectors, male and female, solder cup and through-hole.&lt;br /&gt;
&lt;br /&gt;
Channel board to main board connectors will have an 8-bit data bus, 4-bit address bus, a power, ground, enable, and identify(?) pins (16 total).  Should be able to use IDC connectors and ribbon cable here.&lt;br /&gt;
&lt;br /&gt;
===Simple algorithm for key change detection===&lt;br /&gt;
After reading a byte from the buffers, we xor it with the copy of the byte from last time, then store the new version in the copy location.  We then start looking at the lsb of the xor&amp;#039;ed byte.  If its a 1, we send a key on if the lsb of the read byte is a 1, and a key off if the lsb of the read byte is a 0.  We then shift right and do that again.  We do that 8 times, once for each bit in that byte.  Then we can move on to the next valid address for that channel, write out the address, read back the buffer value, xor, store, analyze, etc.  Note, we can speed this up by checking if the xor byte is identically 0x00, in which case we don&amp;#039;t have to analyze it, it hasn&amp;#039;t changed.  This will be the usual case!  Only occasionally (in sample time), will things change, and usually only on one bit, and thus one buffer, amongst all the channels and buffers.  This should help us keep up to speed.&lt;br /&gt;
&lt;br /&gt;
Once we are done reading all the channel board buffers, we can check the expression pedals and other variable controls for new values, and possibly send control change events.  After all this, we actually send the MIDI bytes as we have determined them to need to be for this time around, and go to sleep until our next sample time.&lt;br /&gt;
&lt;br /&gt;
Not sure what the latency of the serial to USB conversion is in FTDI, but it could be as bad as a single byte in a single USB message....  Anyway, we want to build a buffer of bytes that need to get send over each sample time, with the RTP-MIDI spec used to make it a stream type thing.  This means: packet length, &amp;quot;timestamp&amp;quot;, first MIDI event, relative timestamps (should all be zero), subsequent MIDI events.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=MIDI_and_the_organ_project&amp;diff=2122</id>
		<title>MIDI and the organ project</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=MIDI_and_the_organ_project&amp;diff=2122"/>
		<updated>2009-02-23T05:02:22Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MIDI standard is out there. Also good is the RTP-MIDI RFC, for putting MIDI data into a stream and whatnot.&lt;br /&gt;
&lt;br /&gt;
The basics, as I think we will be using them:&lt;br /&gt;
&lt;br /&gt;
Packet basics (we&amp;#039;ll only be using 3 byte packet forms):&lt;br /&gt;
&lt;br /&gt;
 1 &amp;lt;3: opcode&amp;gt; &amp;lt;4: channel&amp;gt; 0 &amp;lt;7: arg1&amp;gt; 0 &amp;lt;7: arg2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essentially, a status byte, with the high bit on (0x80-0xFF), and two argument bytes, with the high bit off (0x00-0x7F).&lt;br /&gt;
&lt;br /&gt;
opcodes of relevance:&lt;br /&gt;
*0x0: key off.  arg1 is the key number, arg2 is the velocity.  We will always use velocity of 0x40.&lt;br /&gt;
*0x1: key on. arg1 is the key number, arg2 is the velocity.  We will always use the velocity of 0x40.&lt;br /&gt;
*0x3: control change.  arg1 is the control number (0x01 is modulation wheel, 0x0B is the expression pedal), arg2 is the new control value, from 0x00 - 0x7F&lt;br /&gt;
&lt;br /&gt;
For channels, we will use:&lt;br /&gt;
*0x0: Great (Solo) Manual&lt;br /&gt;
*0x1: Swell (Accompaniment) Manual&lt;br /&gt;
*0x2: Choir (below Great) Manual, if present&lt;br /&gt;
*0x3: Solo (above Swell) Manual, if present&lt;br /&gt;
*0x4: Echo (above Solo) Manual, if present&lt;br /&gt;
*0x5: Third Pedalboard, if present, or the auxilary stop channel, covering additional stops for all manuals and pedals.&lt;br /&gt;
*0x6: Second Pedalboard, if present, or the main stop channel, covering all stops for all manuals and pedals.&lt;br /&gt;
*0x7: Main Pedalboard&lt;br /&gt;
*0x8: Great stops only&lt;br /&gt;
*0x9: Swell stops only&lt;br /&gt;
*0xA: Choir stops only&lt;br /&gt;
*0xB: Solo stops only&lt;br /&gt;
*0xC: Echo stops only&lt;br /&gt;
*0xD: Third Pedalboard stops only&lt;br /&gt;
*0xE: Second Pedalboard stops only&lt;br /&gt;
*0xF: Main Pedalboard stops only&lt;br /&gt;
&lt;br /&gt;
Our initial organ will only use channels 0x0-0x1, 0x6-0x7.&lt;br /&gt;
&lt;br /&gt;
Each keyboard channel (0x0-0x7) gets its own control set.  For our organ, where the modulation wheel and expression pedal control all divisions equally, each control change gets sent for each active channel... or maybe just for great, and the software will figure out that they control all the stuff.  Note, we may not hook up the modulation wheel when we begin.  It&amp;#039;d be kinda a lot harder to make work right, I think.&lt;br /&gt;
&lt;br /&gt;
We will be building channel combination boards, that take an enable and a sub-channel address, and read back the contents of the addressed buffer.  4 bits of address gets 16 buffers.  At 8 bits per buffer, thats 128 inputs for each channel.  That matches with midi&amp;#039;s numbering scheme.  Alternatively, if you take the LSB of the true channel, and feed it to the 4th address bit of the channel board, and only decode the top 3 bits of the channel to determine channel board enable, you can duplex your channel boards, since we will only be using under 64 inputs per channel.  The AVR firmware will have an MIDI offset value for each channel to add to the number received from the board before sending as part of a MIDI command. For most subchannels, this will be 36.  Will probably just use an offset of 0 for the stop channels.&lt;br /&gt;
&lt;br /&gt;
Using the split channel board design, we only need two channel boards for our organ.  The main board will be designed to use the channel boards in split mode, and will never probably use the split-mode stop channels (0x8-0xF), so it will only have 4 plugs for channel boards, 0x0-0x1, 0x2-0x3, 0x4-0x5, and 0x6-0x7.  The initial organ will only use the first and last of these plugs, so we don&amp;#039;t even need to populate the board positions for the other channel boards.&lt;br /&gt;
&lt;br /&gt;
Also, I think we might want to put all the switch pull-up resistors on the manuals themselves, soldered to the key tabs.  This will eliminate a lot of crap on the boards, and keep the board design uniform, since the different keys will need different pull-ups.  The manuals, with their 5k internal resistance, will need 50k (or so) pull-ups to 5V, and the pedals and stops, with no internal resistance, will need just 10k (or so) pull-ups to 5V.  Each manual will get a separate power and ground plug for the pull-ups and grounds, so the connectors for the keys don&amp;#039;t need a pin for ground or power, I don&amp;#039;t think... Though if there is room, I guess we could send it along there, too.  Can&amp;#039;t hurt anything, provided the wires support enough current for the crazy case of all the stop pulled or keys pressed or something.  Given a max of 64 inputs to a half-channel, and only 61 keys on a full manual, we can use 2x36 pin connectors for the manuals, and 1x36 pin connector for the pedalboards, and 1x36 pin connector for the stop boards.  Thats 6 total 36 pin connectors, male and female, solder cup and through-hole.&lt;br /&gt;
&lt;br /&gt;
Channel board to main board connectors will have an 8-bit data bus, 4-bit address bus, a power, ground, enable, and identify(?) pins (16 total).  Should be able to use IDC connectors and ribbon cable here.&lt;br /&gt;
&lt;br /&gt;
===Simple algorithm for key change detection===&lt;br /&gt;
After reading a byte from the buffers, we xor it with the copy of the byte from last time, then store the new version in the copy location.  We then start looking at the lsb of the xor&amp;#039;ed byte.  If its a 1, we send a key on if the lsb of the read byte is a 1, and a key off if the lsb of the read byte is a 0.  We then shift right and do that again.  We do that 8 times, once for each bit in that byte.  Then we can move on to the next valid address for that channel, write out the address, read back the buffer value, xor, store, analyze, etc.  Note, we can speed this up by checking if the xor byte is identically 0x00, in which case we don&amp;#039;t have to analyze it, it hasn&amp;#039;t changed.  This will be the usual case!  Only occasionally (in sample time), will things change, and usually only on one bit, and thus one buffer, amongst all the channels and buffers.  This should help us keep up to speed.&lt;br /&gt;
&lt;br /&gt;
Once we are done reading all the channel board buffers, we can check the expression pedals and other variable controls for new values, and possibly send control change events.  After all this, we actually send the MIDI bytes as we have determined them to need to be for this time around, and go to sleep until our next sample time.&lt;br /&gt;
&lt;br /&gt;
Not sure what the latency of the serial to USB conversion is in FTDI, but it could be as bad as a single byte in a single USB message....  Anyway, we want to build a buffer of bytes that need to get send over each sample time, with the RTP-MIDI spec used to make it a stream type thing.  This means: packet length, &amp;quot;timestamp&amp;quot;, first MIDI event, relative timestamps (should all be zero), subsequent MIDI events.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=MIDI_and_the_organ_project&amp;diff=2121</id>
		<title>MIDI and the organ project</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=MIDI_and_the_organ_project&amp;diff=2121"/>
		<updated>2009-02-23T04:53:23Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MIDI standard is out there. Also good is the RTP-MIDI RFC, for putting MIDI data into a stream and whatnot.&lt;br /&gt;
&lt;br /&gt;
The basics, as I think we will be using them:&lt;br /&gt;
&lt;br /&gt;
Packet basics (we&amp;#039;ll only be using 3 byte packet forms):&lt;br /&gt;
&lt;br /&gt;
 1 &amp;lt;3: opcode&amp;gt; &amp;lt;4: channel&amp;gt; 0 &amp;lt;7: arg1&amp;gt; 0 &amp;lt;7: arg2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essentially, a status byte, with the high bit on (0x80-0xFF), and two argument bytes, with the high bit off (0x00-0x7F).&lt;br /&gt;
&lt;br /&gt;
opcodes of relevance:&lt;br /&gt;
*0x0: key off.  arg1 is the key number, arg2 is the velocity.  We will always use velocity of 0x40.&lt;br /&gt;
*0x1: key on. arg1 is the key number, arg2 is the velocity.  We will always use the velocity of 0x40.&lt;br /&gt;
*0x3: control change.  arg1 is the control number (0x01 is modulation wheel, 0x0B is the expression pedal), arg2 is the new control value, from 0x00 - 0x7F&lt;br /&gt;
&lt;br /&gt;
For channels, we will use:&lt;br /&gt;
*0x0: Great (Solo) Manual&lt;br /&gt;
*0x1: Swell (Accompaniment) Manual&lt;br /&gt;
*0x2: Choir (below Great) Manual, if present&lt;br /&gt;
*0x3: Solo (above Swell) Manual, if present&lt;br /&gt;
*0x4: Echo (above Solo) Manual, if present&lt;br /&gt;
*0x5: Third Pedalboard, if present, or the auxilary stop channel, covering additional stops for all manuals and pedals.&lt;br /&gt;
*0x6: Second Pedalboard, if present, or the main stop channel, covering all stops for all manuals and pedals.&lt;br /&gt;
*0x7: Main Pedalboard&lt;br /&gt;
*0x8: Great stops only&lt;br /&gt;
*0x9: Swell stops only&lt;br /&gt;
*0xA: Choir stops only&lt;br /&gt;
*0xB: Solo stops only&lt;br /&gt;
*0xC: Echo stops only&lt;br /&gt;
*0xD: Third Pedalboard stops only&lt;br /&gt;
*0xE: Second Pedalboard stops only&lt;br /&gt;
*0xF: Main Pedalboard stops only&lt;br /&gt;
&lt;br /&gt;
Our initial organ will only use channels 0x0-0x1, 0x6-0x7.&lt;br /&gt;
&lt;br /&gt;
Each keyboard channel (0x0-0x7) gets its own control set.  For our organ, where the modulation wheel and expression pedal control all divisions equally, each control change gets sent for each active channel... or maybe just for great, and the software will figure out that they control all the stuff.  Note, we may not hook up the modulation wheel when we begin.  It&amp;#039;d be kinda a lot harder to make work right, I think.&lt;br /&gt;
&lt;br /&gt;
We will be building channel combination boards, that take an enable and a sub-channel address, and read back the contents of the addressed buffer.  4 bits of address gets 16 buffers.  At 8 bits per buffer, thats 128 inputs for each channel.  That matches with midi&amp;#039;s numbering scheme.  Alternatively, if you take the LSB of the true channel, and feed it to the 4th address bit of the channel board, and only decode the top 3 bits of the channel to determine channel board enable, you can duplex your channel boards, since we will only be using under 64 inputs per channel.  The AVR firmware will have an MIDI offset value for each channel to add to the number received from the board before sending as part of a MIDI command. For most subchannels, this will be 36.  Will probably just use an offset of 0 for the stop channels.&lt;br /&gt;
&lt;br /&gt;
Using the split channel board design, we only need two channel boards for our organ.  The main board will be designed to use the channel boards in split mode, and will never probably use the split-mode stop channels (0x8-0xF), so it will only have 4 plugs for channel boards, 0x0-0x1, 0x2-0x3, 0x4-0x5, and 0x6-0x7.  The initial organ will only use the first and last of these plugs, so we don&amp;#039;t even need to populate the board positions for the other channel boards.&lt;br /&gt;
&lt;br /&gt;
Also, I think we might want to put all the switch pull-up resistors on the manuals themselves, soldered to the key tabs.  This will eliminate a lot of crap on the boards, and keep the board design uniform, since the different keys will need different pull-ups.  The manuals, with their 5k internal resistance, will need 50k (or so) pull-ups to 5V, and the pedals and stops, with no internal resistance, will need just 10k (or so) pull-ups to 5V.  Each manual will get a separate power and ground plug for the pull-ups and grounds, so the connectors for the keys don&amp;#039;t need a pin for ground or power, I don&amp;#039;t think... Though if there is room, I guess we could send it along there, too.  Can&amp;#039;t hurt anything, provided the wires support enough current for the crazy case of all the stop pulled or keys pressed or something.  Given a max of 64 inputs to a half-channel, and only 61 keys on a full manual, we can use 2x36 pin connectors for the manuals, and 1x36 pin connector for the pedalboards, and 1x36 pin connector for the stop boards.  Thats 6 total 36 pin connectors, male and female, solder cup and through-hole.&lt;br /&gt;
&lt;br /&gt;
Channel board to main board connectors will have an 8-bit data bus, 4-bit address bus, a power, ground, enable, and identify(?) pins (16 total).  Should be able to use IDC connectors and ribbon cable here.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=MIDI_and_the_organ_project&amp;diff=2120</id>
		<title>MIDI and the organ project</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=MIDI_and_the_organ_project&amp;diff=2120"/>
		<updated>2009-02-23T04:52:12Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MIDI standard is out there. Also good is the RTP-MIDI RFC, for putting MIDI data into a stream and whatnot.&lt;br /&gt;
&lt;br /&gt;
The basics, as I think we will be using them:&lt;br /&gt;
&lt;br /&gt;
Packet basics:&lt;br /&gt;
&lt;br /&gt;
 1 &amp;lt;3: opcode&amp;gt; &amp;lt;4: channel&amp;gt; 0 &amp;lt;7: arg1&amp;gt; 0 &amp;lt;7: arg2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
opcodes of relevance:&lt;br /&gt;
*0x0: key off.  arg1 is the key number, arg2 is the velocity.  We will always use velocity of 0x40.&lt;br /&gt;
*0x1: key on. arg1 is the key number, arg2 is the velocity.  We will always use the velocity of 0x40.&lt;br /&gt;
*0x3: control change.  arg1 is the control number (0x01 is modulation wheel, 0x0B is the expression pedal), arg2 is the new control value, from 0x00 - 0x7F&lt;br /&gt;
&lt;br /&gt;
For channels, we will use:&lt;br /&gt;
*0x0: Great (Solo) Manual&lt;br /&gt;
*0x1: Swell (Accompaniment) Manual&lt;br /&gt;
*0x2: Choir (below Great) Manual, if present&lt;br /&gt;
*0x3: Solo (above Swell) Manual, if present&lt;br /&gt;
*0x4: Echo (above Solo) Manual, if present&lt;br /&gt;
*0x5: Third Pedalboard, if present, or the auxilary stop channel, covering additional stops for all manuals and pedals.&lt;br /&gt;
*0x6: Second Pedalboard, if present, or the main stop channel, covering all stops for all manuals and pedals.&lt;br /&gt;
*0x7: Main Pedalboard&lt;br /&gt;
*0x8: Great stops only&lt;br /&gt;
*0x9: Swell stops only&lt;br /&gt;
*0xA: Choir stops only&lt;br /&gt;
*0xB: Solo stops only&lt;br /&gt;
*0xC: Echo stops only&lt;br /&gt;
*0xD: Third Pedalboard stops only&lt;br /&gt;
*0xE: Second Pedalboard stops only&lt;br /&gt;
*0xF: Main Pedalboard stops only&lt;br /&gt;
&lt;br /&gt;
Our initial organ will only use channels 0x0-0x1, 0x6-0x7.&lt;br /&gt;
&lt;br /&gt;
Each keyboard channel (0x0-0x7) gets its own control set.  For our organ, where the modulation wheel and expression pedal control all divisions equally, each control change gets sent for each active channel... or maybe just for great, and the software will figure out that they control all the stuff.  Note, we may not hook up the modulation wheel when we begin.  It&amp;#039;d be kinda a lot harder to make work right, I think.&lt;br /&gt;
&lt;br /&gt;
We will be building channel combination boards, that take an enable and a sub-channel address, and read back the contents of the addressed buffer.  4 bits of address gets 16 buffers.  At 8 bits per buffer, thats 128 inputs for each channel.  That matches with midi&amp;#039;s numbering scheme.  Alternatively, if you take the LSB of the true channel, and feed it to the 4th address bit of the channel board, and only decode the top 3 bits of the channel to determine channel board enable, you can duplex your channel boards, since we will only be using under 64 inputs per channel.  The AVR firmware will have an MIDI offset value for each channel to add to the number received from the board before sending as part of a MIDI command. For most subchannels, this will be 36.  Will probably just use an offset of 0 for the stop channels.&lt;br /&gt;
&lt;br /&gt;
Using the split channel board design, we only need two channel boards for our organ.  The main board will be designed to use the channel boards in split mode, and will never probably use the split-mode stop channels (0x8-0xF), so it will only have 4 plugs for channel boards, 0x0-0x1, 0x2-0x3, 0x4-0x5, and 0x6-0x7.  The initial organ will only use the first and last of these plugs, so we don&amp;#039;t even need to populate the board positions for the other channel boards.&lt;br /&gt;
&lt;br /&gt;
Also, I think we might want to put all the switch pull-up resistors on the manuals themselves, soldered to the key tabs.  This will eliminate a lot of crap on the boards, and keep the board design uniform, since the different keys will need different pull-ups.  The manuals, with their 5k internal resistance, will need 50k (or so) pull-ups to 5V, and the pedals and stops, with no internal resistance, will need just 10k (or so) pull-ups to 5V.  Each manual will get a separate power and ground plug for the pull-ups and grounds, so the connectors for the keys don&amp;#039;t need a pin for ground or power, I don&amp;#039;t think... Though if there is room, I guess we could send it along there, too.  Can&amp;#039;t hurt anything, provided the wires support enough current for the crazy case of all the stop pulled or keys pressed or something.  Given a max of 64 inputs to a half-channel, and only 61 keys on a full manual, we can use 2x36 pin connectors for the manuals, and 1x36 pin connector for the pedalboards, and 1x36 pin connector for the stop boards.  Thats 6 total 36 pin connectors, male and female, solder cup and through-hole.&lt;br /&gt;
&lt;br /&gt;
Channel board to main board connectors will have an 8-bit data bus, 4-bit address bus, a power, ground, enable, and identify(?) pins (16 total).  Should be able to use IDC connectors and ribbon cable here.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=MIDI_and_the_organ_project&amp;diff=2119</id>
		<title>MIDI and the organ project</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=MIDI_and_the_organ_project&amp;diff=2119"/>
		<updated>2009-02-23T04:25:40Z</updated>

		<summary type="html">&lt;p&gt;Admin: New page: MIDI standard is out there. Also good is the RTP-MIDI RFC, for putting MIDI data into a stream and whatnot.  The basics, as I think we will be using them:  Packet basics:   1 &amp;lt;3: opcode&amp;gt; &amp;lt;...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MIDI standard is out there. Also good is the RTP-MIDI RFC, for putting MIDI data into a stream and whatnot.&lt;br /&gt;
&lt;br /&gt;
The basics, as I think we will be using them:&lt;br /&gt;
&lt;br /&gt;
Packet basics:&lt;br /&gt;
&lt;br /&gt;
 1 &amp;lt;3: opcode&amp;gt; &amp;lt;4: channel&amp;gt; 0 &amp;lt;7: arg1&amp;gt; 0 &amp;lt;7: arg2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
opcodes of relevance:&lt;br /&gt;
*0x0: key off.  arg1 is the key number, arg2 is the velocity.  We will always use velocity of 0x40.&lt;br /&gt;
*0x1: key on. arg1 is the key number, arg2 is the velocity.  We will always use the velocity of 0x40.&lt;br /&gt;
*0x3: control change.  arg1 is the control number (0x01 is modulation wheel, 0x0B is the expression pedal), arg2 is the new control value, from 0x00 - 0x7F&lt;br /&gt;
&lt;br /&gt;
For channels, we will use:&lt;br /&gt;
*0x0: Great (Solo) Manual&lt;br /&gt;
*0x1: Swell (Accompaniment) Manual&lt;br /&gt;
*0x2: Choir (below Great) Manual&lt;br /&gt;
*0x3: Solo (above Swell) Manual&lt;br /&gt;
*0x4: Echo (above Solo) Manual&lt;br /&gt;
*0x5: Pedalboard&lt;br /&gt;
*0x6: Second Pedalboard, if any&lt;br /&gt;
*0x7: Third Pedalboard.  Right.&lt;br /&gt;
*0x8: Stop channel.  If divided, stops for Great&lt;br /&gt;
*0x9: Stop channel for Swell.&lt;br /&gt;
*0xA: Stop channel for Choir.&lt;br /&gt;
*0xB: Stop channel for Solo.&lt;br /&gt;
*0xC: Stop channel for Echo.&lt;br /&gt;
*0xD: Stop channel for Pedalboard.&lt;br /&gt;
*0xE: Stop channel for Second Pedalboard.&lt;br /&gt;
*0xF: Stop channel for Third Pedalboard.&lt;br /&gt;
&lt;br /&gt;
Each keyboard channel (0x0-0x7) gets its own control set.  For our organ, where the modulation wheel and expression pedal control all divisions equally, each control change gets sent for each active channel... or maybe just for great, and the software will figure out that they control all the stuff.  Note, we may not hook up the modulation wheel when we begin.  It&amp;#039;d be kinda a lot harder to make work right, I think.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=Fernseher&amp;diff=2118</id>
		<title>Fernseher</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Fernseher&amp;diff=2118"/>
		<updated>2009-02-23T04:09:27Z</updated>

		<summary type="html">&lt;p&gt;Admin: /* Other Related Projects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Fernseher is an all encompassing set of scripts to solve all the world&amp;#039;s problems, determine whether P really does equal NP, make me lots of money, and make a fool of myself, all at once.  I imagine it will be useful to no one, do exactly what no one wants it to do, and be accused of murder and money laundering multiple times.  If it does what you want it to do, reconsider, because you are probably wrong.  It won&amp;#039;t even do what I want it to do, and I wrote the damn thing.&lt;br /&gt;
&lt;br /&gt;
In summation, your probably don&amp;#039;t really want this set of crap on your box, and if you put it on your box, it is likely that your computer will implode, and almost certain that all your base will belong to me.&lt;br /&gt;
&lt;br /&gt;
That said, I am using this wiki to keep track of ideas I have for the various components involved, what they do, what they should do, how to use them, how to improve them, and what will happen if you don&amp;#039;t use them with everything else.  I am also hoping to do some rudimentary interface design here for the various front ends, as well as backend database design so I know how its all supposed to go together.  I may also put any information I have on the various utilities I plan on using to interface with the tuner cards, as well as interfaces to play music and video, adjust channels, volume, use bittorrent, etc.  &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Backend/Server Components===&lt;br /&gt;
&lt;br /&gt;
*[[durchcoderd]]&lt;br /&gt;
*[[herrd]]&lt;br /&gt;
*[[rissd]]&lt;br /&gt;
*[[seherd]]&lt;br /&gt;
*[[unterhalterd]]&lt;br /&gt;
&lt;br /&gt;
===Frontend/Client Components===&lt;br /&gt;
&lt;br /&gt;
*[[nackt]]&lt;br /&gt;
*[[spieler]]&lt;br /&gt;
*[[wunscher]]&lt;br /&gt;
&lt;br /&gt;
===Database Design and Synchronization===&lt;br /&gt;
&lt;br /&gt;
*[[Tables]]&lt;br /&gt;
*[[Managed Objects]]&lt;br /&gt;
*[[Queues]]&lt;br /&gt;
*[[Synchronization]]&lt;br /&gt;
*[[Clients]]&lt;br /&gt;
&lt;br /&gt;
===Components to Harness===&lt;br /&gt;
&lt;br /&gt;
*[[libgpod]]&lt;br /&gt;
*[[vlc]]&lt;br /&gt;
*[[mplayer]]&lt;br /&gt;
*[[mpg123]]&lt;br /&gt;
*[[mencoder]]&lt;br /&gt;
*[[curses]]&lt;br /&gt;
*[[ajax]]&lt;br /&gt;
*[[firefox]]&lt;br /&gt;
*[[wiimote mouse]]&lt;br /&gt;
*[[tvshows from online]]&lt;br /&gt;
&lt;br /&gt;
===Other Related Projects===&lt;br /&gt;
&lt;br /&gt;
*[[bittorrent]]&lt;br /&gt;
*[[blogging queue]]&lt;br /&gt;
*[[mpr stream capture]]&lt;br /&gt;
*[[photo management]]&lt;br /&gt;
*[[email grabber]]&lt;br /&gt;
*[[tag clouds]]&lt;br /&gt;
*[[remote control device]]&lt;br /&gt;
*[[dialup server system]]&lt;br /&gt;
*[[distributed internal network]]&lt;br /&gt;
*[[dvdlookup.org]]&lt;br /&gt;
*[[playlist]]&lt;br /&gt;
*[[slackpkg plus plus]]&lt;br /&gt;
*[[gkrellm replacement]]&lt;br /&gt;
*[[book cataloging]]&lt;br /&gt;
*[[some avr stuff]]&lt;br /&gt;
*[[modjs]]&lt;br /&gt;
*[[thoughs on avr event scheduling]]&lt;br /&gt;
*[[MIDI and the organ project]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Stuff to get working on my computers===&lt;br /&gt;
*[[xvmc]]&lt;br /&gt;
*[[nis]]&lt;br /&gt;
*[[proper dhcp]]&lt;br /&gt;
*[[special fw on router]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=Xvmc&amp;diff=2117</id>
		<title>Xvmc</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Xvmc&amp;diff=2117"/>
		<updated>2009-02-15T05:28:05Z</updated>

		<summary type="html">&lt;p&gt;Admin: New page: Stuff that&amp;#039;s needed, according to some website somewhere: *xorg-x11-server-Xorg 1.3.0.0-6 *xorg-x11-server-sdk 1.3.0.0-6 *libXvMC-devel *mesa-libGL-devel 6.5-9 *libdrm-devel 2.0-1 *libXvMC...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Stuff that&amp;#039;s needed, according to some website somewhere:&lt;br /&gt;
*xorg-x11-server-Xorg 1.3.0.0-6&lt;br /&gt;
*xorg-x11-server-sdk 1.3.0.0-6&lt;br /&gt;
*libXvMC-devel&lt;br /&gt;
*mesa-libGL-devel 6.5-9&lt;br /&gt;
*libdrm-devel 2.0-1&lt;br /&gt;
*libXvMCW&lt;br /&gt;
*xf86-video-interl 2.3.0&lt;br /&gt;
*xorg-x11-proto-devel 7.3-12&lt;br /&gt;
*xorg-server-devel&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>