mirror of https://codeberg.org/Sonoj/osamc.de
Compare commits
4 Commits
49064f23bc
...
09b79181d9
Author | SHA1 | Date |
---|---|---|
Nils | 09b79181d9 | |
Nils | 900bae31a6 | |
Nils | d37b031139 | |
Nils | b11ebef267 |
18
README.md
18
README.md
|
@ -7,14 +7,28 @@ The webserver uses it's own git clone of this repository.
|
||||||
|
|
||||||
https://osamc.de/
|
https://osamc.de/
|
||||||
|
|
||||||
Edit the HTML files by hand.
|
Dates for the next meetings are automatically calculated.
|
||||||
|
For everything else edit the HTML files by hand.
|
||||||
|
|
||||||
|
## Deploying the website
|
||||||
|
|
||||||
|
The server osamc.de updates a local copy of this repository and will rsync changes to the web
|
||||||
|
directory. Additional sanity checking and security measures are done in this step to prevent
|
||||||
|
(accidental) harmful files on the public webserver.
|
||||||
|
|
||||||
## Archive
|
## Archive
|
||||||
|
|
||||||
https://osamc.de/archiv/
|
https://osamc.de/archiv/
|
||||||
|
|
||||||
Each sub directory is one talk or project.
|
Each sub directory is one talk or project.
|
||||||
Everything that has an .ini file will be parsed by the index generator program.
|
Everything that has a metadata.ini file will be parsed by the index generator program.
|
||||||
|
Possible index files are index.html index.php and index.pdf
|
||||||
|
|
||||||
|
## Protocols / Pad
|
||||||
|
|
||||||
|
The collaborative text pad is currently not in this git. #TODO
|
||||||
|
|
||||||
|
## Large File Storage
|
||||||
|
|
||||||
Since we host large files, like music sessions, in the archive it needs git large file storage for
|
Since we host large files, like music sessions, in the archive it needs git large file storage for
|
||||||
github. git lfs is detected by github, you or other users don't need to setup anything on github,
|
github. git lfs is detected by github, you or other users don't need to setup anything on github,
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
DirectoryIndex index.php index.html index.htm index.pdf
|
|
@ -0,0 +1,50 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
function cmpByDate(array $a, array $b) {
|
||||||
|
return strcmp($a['Date'], $b['Date']);
|
||||||
|
}
|
||||||
|
|
||||||
|
$dirs = array_filter(glob('*'), 'is_dir');
|
||||||
|
//print_r($dirs);
|
||||||
|
|
||||||
|
|
||||||
|
$projects = array();
|
||||||
|
foreach($dirs as $projectdir) {
|
||||||
|
$inifile = $projectdir . "/metadata.ini";
|
||||||
|
if (file_exists($inifile)) {
|
||||||
|
$iniAssoArray = parse_ini_file($inifile, false, INI_SCANNER_RAW);
|
||||||
|
$iniAssoArray["Directory"] = $projectdir;
|
||||||
|
array_push($projects, $iniAssoArray);
|
||||||
|
//print_r($iniAssoArray);
|
||||||
|
//echo $iniAssoArray['Date']."\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
usort($projects, 'cmpByDate');
|
||||||
|
$projects = array_reverse($projects); //newest first
|
||||||
|
|
||||||
|
//print_r($projects);
|
||||||
|
|
||||||
|
//Now we have all ini files as PHP arrays, sorted by date, and can build HTML.
|
||||||
|
|
||||||
|
|
||||||
|
$resultHTML = "";
|
||||||
|
foreach($projects as $proj) {
|
||||||
|
$block = <<<EOD
|
||||||
|
<h4><small>$proj[Date]</small><br>
|
||||||
|
<a href="$proj[Directory]">$proj[PrettyName]</a></h4>
|
||||||
|
<ul>
|
||||||
|
<li>$proj[Author], $proj[License]</li>
|
||||||
|
<li>Permalink: <a href="https://www.osamc.de/archiv/$proj[Directory]">https://www.osamc.de/archiv/$proj[Directory]</a></li>
|
||||||
|
</ul>
|
||||||
|
<hr>
|
||||||
|
\n
|
||||||
|
EOD;
|
||||||
|
|
||||||
|
$resultHTML = $resultHTML . $block;
|
||||||
|
|
||||||
|
}
|
||||||
|
//return $resultHTML;
|
||||||
|
echo $resultHTML;
|
||||||
|
?>
|
|
@ -1,206 +0,0 @@
|
||||||
<!doctype html>
|
|
||||||
<html>
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<link rel="stylesheet" href="normalize.css" type="text/css">
|
|
||||||
<link rel="stylesheet" href="sakura.css" type="text/css">
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
|
||||||
<title>OSAMC Archiv</title>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<h1>Open Source Audio Meeting Cologne: Archiv</h1>
|
|
||||||
<p><a href="anleitung.html">Anleitung für OSAMC Mitglieder</a></p>
|
|
||||||
|
|
||||||
|
|
||||||
<h4><small>2023-08</small><br><a href="jtsoftarch">Untersuchung von Software-Architekturen – Eine Fallstudie zu häufigen Gründen für Architektur-Erosion in Open Source Software aus dem akademischen Umfeld</a></h4>
|
|
||||||
<ul>
|
|
||||||
<li>Sven Thielen, CC BY-NC-SA</li>
|
|
||||||
<li>Permalink: <a href="https://www.osamc.de/archiv/jtsoftarch">https://www.osamc.de/archiv/jtsoftarch</a></li>
|
|
||||||
</ul>
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4><small>2023-07</small><br><a href="bleaudio">Bluetooth Low Energy Audio - Harald kannst du mich hören???</a></h4>
|
|
||||||
<ul>
|
|
||||||
<li>Marius, CC-by-sa</li>
|
|
||||||
<li>Permalink: <a href="https://www.osamc.de/archiv/bleaudio">https://www.osamc.de/archiv/bleaudio</a></li>
|
|
||||||
</ul>
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4><small>2023-06</small><br><a href="pianotrainer">Piano-Trainer</a></h4>
|
|
||||||
<ul>
|
|
||||||
<li>nils, CC-by-sa</li>
|
|
||||||
<li>Permalink: <a href="https://www.osamc.de/archiv/pianotrainer">https://www.osamc.de/archiv/pianotrainer</a></li>
|
|
||||||
</ul>
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4><small>2022-07-20</small><br><a href="gatedreverbdrums">Gated Reverb Drums</a></h4>
|
|
||||||
<ul>
|
|
||||||
<li>Christopher Arndt, CC-by-sa</li>
|
|
||||||
<li>Permalink: <a href="https://www.osamc.de/archiv/gatedreverbdrums">https://www.osamc.de/archiv/gatedreverbdrums</a></li>
|
|
||||||
</ul>
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4><small>2021-08</small><br><a href="wifi5iempi">Wi-Fi IEM Pi – WLAN In-Ear Monitoring mit Raspberry Pi und Freier Software</a></h4>
|
|
||||||
<ul>
|
|
||||||
<li>Sven Thielen, CC BY-NC-SA</li>
|
|
||||||
<li>Permalink: <a href="https://www.osamc.de/archiv/wifi5iempi">https://www.osamc.de/archiv/wifi5iempi</a></li>
|
|
||||||
</ul>
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4><small>2021-03</small><br><a href="2021kreiskomposition2">Kreiskompositions-Projekt II</a></h4>
|
|
||||||
<ul>
|
|
||||||
<li>OSAMC, CC-by-sa</li>
|
|
||||||
<li>Permalink: <a href="https://www.osamc.de/archiv/2021kreiskomposition2">https://www.osamc.de/archiv/2021kreiskomposition2</a></li>
|
|
||||||
</ul>
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4><small>2021-01</small><br><a href="2021kreiskomposition">Kreiskompositions-Projekt</a></h4>
|
|
||||||
<ul>
|
|
||||||
<li>OSAMC, CC-by-sa</li>
|
|
||||||
<li>Permalink: <a href="https://www.osamc.de/archiv/2021kreiskomposition">https://www.osamc.de/archiv/2021kreiskomposition</a></li>
|
|
||||||
</ul>
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4><small>2020-11</small><br><a href="wifi5iem">In-Ear Monitoring über WLAN – Eine Analyse zur Realisierbarkeit mit Freier Software</a></h4>
|
|
||||||
<ul>
|
|
||||||
<li>Sven Thielen, CC BY-NC-SA</li>
|
|
||||||
<li>Permalink: <a href="https://www.osamc.de/archiv/wifi5iem">https://www.osamc.de/archiv/wifi5iem</a></li>
|
|
||||||
</ul>
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4><small>2020-11</small><br><a href="avb">Audio over Ethernet: AVB/TSN</a></h4>
|
|
||||||
<ul>
|
|
||||||
<li>Florian "Florob" Zeitz, CC-by-sa</li>
|
|
||||||
<li>Permalink: <a href="https://www.osamc.de/archiv/avb">https://www.osamc.de/archiv/avb</a></li>
|
|
||||||
</ul>
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4><small>2019-11</small><br><a href="ardourscripting">Ardour Scripting 101</a></h4>
|
|
||||||
<ul>
|
|
||||||
<li>Daniel Appelt, CC-by-sa</li>
|
|
||||||
<li>Permalink: <a href="https://www.osamc.de/archiv/ardourscripting">https://www.osamc.de/archiv/ardourscripting</a></li>
|
|
||||||
</ul>
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4><small>2019-07</small><br><a href="abcnotation">Praktisches Arbeiten mit der ABC Notation</a></h4>
|
|
||||||
<ul>
|
|
||||||
<li>Christopher Arndt, CC-by</li>
|
|
||||||
<li>Permalink: <a href="https://www.osamc.de/archiv/abcnotation">https://www.osamc.de/archiv/abcnotation</a></li>
|
|
||||||
</ul>
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4><small>2019-06</small><br><a href="fuenfjahre">Fünf Jahre OSAMC</a></h4>
|
|
||||||
<ul>
|
|
||||||
<li>nils, CC-by-sa</li>
|
|
||||||
<li>Permalink: <a href="https://www.osamc.de/archiv/fuenfjahre">https://www.osamc.de/archiv/fuenfjahre</a></li>
|
|
||||||
</ul>
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4><small>2019-05</small><br><a href="orchester">Orchesterpartituren Lesen und Mitverfolgen</a></h4>
|
|
||||||
<ul>
|
|
||||||
<li>Nils, CC-by-sa</li>
|
|
||||||
<li>Permalink: <a href="https://www.osamc.de/archiv/orchester">https://www.osamc.de/archiv/orchester</a></li>
|
|
||||||
</ul>
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4><small>2018-08-15</small><br><a href="fmsynths">Open Source FM Software Synthesizer</a></h4>
|
|
||||||
<ul>
|
|
||||||
<li>Christopher Arndt, CC-by-sa</li>
|
|
||||||
<li>Permalink: <a href="https://www.osamc.de/archiv/fmsynths">https://www.osamc.de/archiv/fmsynths</a></li>
|
|
||||||
</ul>
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4><small>2018-06</small><br><a href="sfxr">sfxr Random Sound Generator</a></h4>
|
|
||||||
<ul>
|
|
||||||
<li>nils, CC-by-sa</li>
|
|
||||||
<li>Permalink: <a href="https://www.osamc.de/archiv/sfxr">https://www.osamc.de/archiv/sfxr</a></li>
|
|
||||||
</ul>
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4><small>2018-05-16</small><br><a href="norns">norns (linux-powered open-source sound computer) - voraussichtliches Erscheinungsdatum: 1. September 2018</a></h4>
|
|
||||||
<ul>
|
|
||||||
<li>Markus, CC-by-sa</li>
|
|
||||||
<li>Permalink: <a href="https://www.osamc.de/archiv/norns">https://www.osamc.de/archiv/norns</a></li>
|
|
||||||
</ul>
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4><small>2018-05-16</small><br><a href="mcgv">mcgv-0.01 (monome controlled generative visuals) - In Processing geschriebenes, interaktives Animations-Übungsprojekt. (work-in-progress)</a></h4>
|
|
||||||
<ul>
|
|
||||||
<li>Markus, CC-by-sa</li>
|
|
||||||
<li>Permalink: <a href="https://www.osamc.de/archiv/mcgv">https://www.osamc.de/archiv/mcgv</a></li>
|
|
||||||
</ul>
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4><small>2018-05</small><br><a href="cracklebox">Die Crackle Box - intuitiv bedienbarer Klein-Synthesizer mit unvorhersehbarem klanglichem Ergebnis</a></h4>
|
|
||||||
<ul>
|
|
||||||
<li>Georg Berger, CC-by-sa</li>
|
|
||||||
<li>Permalink: <a href="https://www.osamc.de/archiv/cracklebox">https://www.osamc.de/archiv/cracklebox</a></li>
|
|
||||||
</ul>
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4><small>2018-04</small><br><a href="speedcompositionapril2018">Speed Composition Event April 2018</a></h4>
|
|
||||||
<ul>
|
|
||||||
<li>OSAMC, CC-by-sa</li>
|
|
||||||
<li>Permalink: <a href="https://www.osamc.de/archiv/speedcompositionapril2018">https://www.osamc.de/archiv/speedcompositionapril2018</a></li>
|
|
||||||
</ul>
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4><small>2018-03</small><br><a href="nonsessionmanager">Non Session Manager</a></h4>
|
|
||||||
<ul>
|
|
||||||
<li>Nils, CC-by-sa</li>
|
|
||||||
<li>Permalink: <a href="https://www.osamc.de/archiv/nonsessionmanager">https://www.osamc.de/archiv/nonsessionmanager</a></li>
|
|
||||||
</ul>
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4><small>2018-02</small><br><a href="demo">Demo-Projekt mit Templates ツ</a></h4>
|
|
||||||
<ul>
|
|
||||||
<li>Demona Demonsdottir, CC-by</li>
|
|
||||||
<li>Permalink: <a href="https://www.osamc.de/archiv/demo">https://www.osamc.de/archiv/demo</a></li>
|
|
||||||
</ul>
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
<!doctype html>
|
||||||
|
<html>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<link rel="stylesheet" href="normalize.css" type="text/css">
|
||||||
|
<link rel="stylesheet" href="sakura.css" type="text/css">
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||||
|
<title>OSAMC Archiv</title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<h1>Open Source Audio Meeting Cologne: Archiv</h1>
|
||||||
|
|
||||||
|
<?php include "build_project_index_html.php"; ?>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -1,3 +1,9 @@
|
||||||
|
<?php
|
||||||
|
include "third_wednesday.php";
|
||||||
|
$nextDate = nextThirdWednesday();
|
||||||
|
$followingDates = listNextElevenThirdWendesdays();
|
||||||
|
?>
|
||||||
|
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
|
@ -175,21 +181,10 @@
|
||||||
|
|
||||||
<div class="Information">
|
<div class="Information">
|
||||||
|
|
||||||
<h4>Termine<span><a href="https://plan.osamc.de">18.10.2023</a> 19:00 Uhr </span></h4>
|
<h4>Termine<span><a href="https://plan.osamc.de"><?php echo $nextDate; ?></a> 19:00 Uhr </span></h4>
|
||||||
|
|
||||||
<p>Jeder Dritte Mittwoch im Monat (außer Dezember):<br>
|
<p>Jeder Dritte Mittwoch im Monat (außer Dezember):<br>
|
||||||
15.11.
|
<?php echo $followingDates; ?>
|
||||||
17.1.
|
|
||||||
21.2.
|
|
||||||
20.3.
|
|
||||||
17.4.
|
|
||||||
15.5.
|
|
||||||
19.6.
|
|
||||||
17.7.
|
|
||||||
21.8.
|
|
||||||
18.9.
|
|
||||||
16.10.
|
|
||||||
20.11.
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@ -231,7 +226,7 @@
|
||||||
|
|
||||||
<div class="Form">
|
<div class="Form">
|
||||||
|
|
||||||
<h3>Nächstes Treffen: <span>18.10.2023</span></h3>
|
<h3>Nächstes Treffen: <span><?php echo $nextDate; ?></span></h3>
|
||||||
<form method="post" action="#">
|
<form method="post" action="#">
|
||||||
<fieldset disabled>
|
<fieldset disabled>
|
||||||
|
|
|
@ -0,0 +1,60 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
function nextThirdWednesday() {
|
||||||
|
// Set the default time zone to your desired one
|
||||||
|
date_default_timezone_set('Europe/Berlin');
|
||||||
|
|
||||||
|
$date = new DateTime( 'third wednesday of this month, 17:00' );
|
||||||
|
if( date_create()->diff( $date )->invert )
|
||||||
|
{
|
||||||
|
$date = new DateTime( 'third wednesday of next month, 17:00' );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if ($date->format('m') == '12') {
|
||||||
|
// If it's December, advance to January of the following year
|
||||||
|
$date->modify('third wednesday of January next year');
|
||||||
|
$date->modify('-1 day'); // not sure why.
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$nextThirdWednesdayFormatted = $date->format('d.m.y');
|
||||||
|
return $nextThirdWednesdayFormatted;
|
||||||
|
}
|
||||||
|
|
||||||
|
function listNextElevenThirdWendesdays() {
|
||||||
|
date_default_timezone_set('Europe/Berlin');
|
||||||
|
|
||||||
|
//Start with the actual next meeting date, that is already calculated by another function already.
|
||||||
|
$date = new DateTime( 'third wednesday of this month, 17:00' );
|
||||||
|
if( date_create()->diff( $date )->invert )
|
||||||
|
{
|
||||||
|
$date = new DateTime( 'third wednesday of next month, 17:00' );
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($date->format('m') == '12') {
|
||||||
|
// If it's December, advance to January of the following year
|
||||||
|
$date->modify('third wednesday of January next year');
|
||||||
|
$date->modify('-1 day'); // not sure why.
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$result = "";
|
||||||
|
|
||||||
|
for ($i=0; $i < 11; $i++) {
|
||||||
|
|
||||||
|
$date->modify('third wednesday of next month');
|
||||||
|
//Again:
|
||||||
|
if ($date->format('m') == '12') {
|
||||||
|
// If it's December, advance to January of the following year
|
||||||
|
$date->modify('third wednesday of January next year');
|
||||||
|
$date->modify('-1 day'); // not sure why.
|
||||||
|
}
|
||||||
|
|
||||||
|
$result = $result . " " . $date->format('d.m');
|
||||||
|
}
|
||||||
|
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
Loading…
Reference in New Issue