Projekt: Hesla Jednoty bratrské/2018
Tato stránka je součástí projektu: | |
Příslušnost: skupinová |
Projekt: Hesla Jednoty bratrské pro rok 2018
[editovat]V tomto článku řešíme průběh přípravy textu (tj. vlastních hesel pro jednotlivé dny roku) pro Hesla Jednoty bratrské 2018; další záležitosti řešíme na dalších podstránkách:
- Přípravu obálky řešíme v článku Projekt: Hesla Jednoty bratrské/obálka/2018.
- Heslo roku řešíme v článku Projekt: Hesla Jednoty bratrské/heslo roku/2018
- Kulatá výročí řešíme v článku Projekt: Hesla Jednoty bratrské/výročí/2018.
- Písně řešíme v článku Projekt: Hesla Jednoty bratrské/písně/2018.
Technologie asi zůstává zhruba stejná jako loni (viz Projekt: Hesla Jednoty bratrské/2017) a jak je uvedena na hlavní stránce Projekt: Hesla Jednoty bratrské#Technologie
Písmeno w na začátku níže uvedených oddílů znamená working directory, tj. název pracovního adresáře, ve kterém se postupně řeší jednotlivé fáze vytváření českých Hesel JB:
w00-Losungen
[editovat]Vstupní data – Losungen v německém jazyce. Tato vstupní data, která slouží pouze jako podklad pro pořízení překladů do národních jazyků, bohužel nemůžeme zveřejňovat z důvodů autorských práv.
2016-06-17_Rubin_11_53
[editovat]- Losungen für 2018 2016-06-02.docx – Oficiální manuskript z nakladatelství Friedrich Reinhardt AG, Basel
2016-12-09_Erdmann
[editovat]- Losungen_fuer_2018_2016-12-09.mdb – Aktuální databáze s Hesly z Ochranova ve formátu MS Access:
2017-02-24_Erdmann
[editovat]- Losungen für 2018 2017-02-24.rtf – Export z aktuální databáze s Hesly z Ochranova ve formátu RTF:
2017-02-27_Salewski
[editovat]- Doplňující soubory: Předmluva, korektury, modlitební stráž
w01-jet-mdb-import
[editovat]V lednu a únoru jsme řešili náročné zkouškové období a pak také kůrovce v lese, takže ke zpracování Hesel jsem se dostal až v půlce února:
2017-02-13
[editovat]Import dat z jedné tabulky databáze MS Access do tabulky import databáze MySQL; proběhl (až ná pár drobností) bez větších problémů, schema databáze naštěstí zůstává stejné jako v minulých letech (Projekt: Hesla Jednoty bratrské/2016/losungen2016.schema).
w02-sql-load
[editovat]2017-02-13
[editovat]Začátek práce – vychytávání chyb
2017-02-19
[editovat]Hotovo – hes18w02h-Stephanustag.sql
w03-sql-transl
[editovat]2017-02-23
[editovat]Hotovo – hes18w03a.sql
w04-quote+song
[editovat]2017-02-23
[editovat]- quotes17void.pl – krátký skriptík vkládá do databáze prázdné záznamy pro citáty měsíců a týdnů, aby je tam Mirek mohl doplnit:
#! /usr/bin/perl -w
use DateTime;
$dt = DateTime->new(
year => 2018,
month => 1,
day => 1
);
use HesSQL qw($dbh $quote_w);
$dbh->do("TRUNCATE `quote`");
for (my $n=1; $n<=365; $n++) {
$ymd = $dt->ymd;
$dow = $dt->day_of_week;
printf "%8s (%1d)", $ymd, $dow;
if($dt->day == 1){
print " : Citát měsíce";
# table quote: sel, date, which, lang, transl, source, text
$quote_w->execute(1, $ymd, 'MONTH', 'cs', 'MM', '', '');
}
if($dow == 7){
print " : Citát týdne";
$quote_w->execute(1, $ymd, 'sunday', 'cs', 'MM', '', '');
}
print "\n";
$dt->add( days => 1 );
}
$dbh->disconnect;
2017-03-06
[editovat]Podobným způsobem tam vložím i prázdné záznamy pro písně pro každý týden:
- songs17void.pl
#! /usr/bin/perl -w
use DateTime;
$dt = DateTime->new(
year => 2018,
month => 1,
day => 1
);
use HesSQL qw($dbh $song_w);
$dbh->do("TRUNCATE `song`");
for (my $n=1; $n<=365; $n++) {
$ymd = $dt->ymd;
$dow = $dt->day_of_week;
printf "%8s (%1d)", $ymd, $dow;
if($dow == 7){
print " : píseň";
#table song: sel, date, seq, which, lang, book, nr, strophe, strophe2, text; which = Ld, WL
$song_w->execute(1, $ymd, 'sunday', 'cs', 'MM', '', '');
}
print "\n";
$dt->add( days => 1 );
}
$dbh->disconnect;
Od letoška do záznamů v tabulce song s německými písněmi pro jednotlivé týdny WL doplňuji do sloupce text názvy písní z Evangelisches Gesangbuch, dohledané podle čísel dle Liederbuch: Ev. Gesangbuch.
- liederdatenbank.de.pl – skriptík mi z té stránky vytáhne seznam písní:
#! /usr/bin/perl -w
my $nr;
while (<>) {
if (m|span class="linkweiteres">(\d+)|) {$nr =$1; next;}
if (m|<a href="/song/(\d+)">(.+)</a>|) {
my $link = $1;
my $song = $2;
print "$nr <a href=\"http://www.liederdatenbank.de/song/$link\">$song</a>\n";
$nr = '';
next;
}
}
2017-03-08
[editovat]Ten seznam pak přidám do skriptu, který mi názvy těch písní uloží do databáze:
Protože v Losungen se často uvádí dvě možnosti Wochenlied, ukládám je do sloupce text oddělené svislítkem. Zároveň před ně do hranatých závorek umístím odkaz na číslo písně v http://www.liederdatenbank.de/song/
Záznamy v tabulce song pak vypadá např. následovně:
INSERT INTO `song` (`sel`, `date`, `seq`, `which`, `lang`, `book`, `nr`, `strophe`, `strophe2`, `text`) VALUES
(0, '2018-01-01', 1, 'Ld', 'de', '', '64|65', 0, 0, '[145]Der du die Zeit in Händen hast|[386]Von guten Mächten wunderbar geborgen'),
(0, '2018-01-06', 2, 'Ld', 'de', '', '70|71', 0, 0, '[1520]Wie schön leuchtet der Morgenstern|[2005]O König aller Ehren'),
(0, '2018-01-07', 3, 'WL', 'de', '', '68|441', 0, 0, '[10524]O lieber Herre Jesu Christ|[11788]Du höchstes Licht, du ewger Schein'),
(0, '2018-01-14', 4, 'WL', 'de', '', '5|398', 0, 0, '[9054]Gottes Sohn ist kommen|[272]In dir ist Freude'),
(0, '2018-01-21', 6, 'WL', 'de', '', '67', 0, 0, '[10523]Herr Christ, der einig Gotts Sohn'),
...
- hes18w04g.sql – výsledná verze databáze
w05-localhost-php
[editovat]2017-03-09
[editovat]Doplněno zobrazovaní čísel a názvů německých písní (WL – Wochenlied):
w06-dulos-php
[editovat]2017-03-09
[editovat]Z localhost uploadováno na server.
Problémy s FireFTP, používám raději FileZilla.
w07-MB+
[editovat]2017-03-09
[editovat]První manuální záloha 17:20, automatické zálohování spuštěno od 18:00. Databáze:
- dulos2827 = 2018mirek
- dulos2831 = 2018rfc
Hned potom večer jsem jel za Mirkem, ale chybí mu zdroj od modemu, takže se nedostane na Inet.
2017-04-13
[editovat]Mirek dokončil poslední editaci mezi 17:00 a 18:00 hodinou:
diff dulos2827.1492095601.sql dulos2827.1492099202.sql
2c2 < # backup date and time: 2017/04/13 17:00:01 --- > # backup date and time: 2017/04/13 18:00:02 3858c3858 < insert into `quote` values ('1', '2018-11-18', 'sunday', 'cs', 'MM', 'Stopy', 'Tělo té duše,\r\n které je do zpěvu,\r\n jde dobrou cestou.'); --- > insert into `quote` values ('1', '2018-11-18', 'sunday', 'cs', 'MM', 'Stopy', 'Každé nutí mysli\r\n mění se ve světlo\r\n anebo ve stín.');
w08-Mirkovo
[editovat]2017-06-03
[editovat]Konečně zpracovávám, co udělal Mirek.
diff dulos2827.1492099202.sql dulos2827.1496480401.sql
2c2 < # backup date and time: 2017/04/13 18:00:02 --- > # backup date and time: 2017/06/03 11:00:01
Je vidět, že od doby jeho poslední editace se nic nezměnilo.
w09-localhost-php.v5
[editovat]2017-06-07
[editovat]Totálně mě zaskočilo, že skripty, které v minulých letech fungovaly, najednou nefungují – prostě nic, prázdná obrazovka, žádné hlášení o chybě – nic. Postupným přidáváním ladících výpisů se nakonec dostávám k tomu, že funkce MySQL_Connect() mi už nefunguje:
function connectDB_old() {
$spojeni = MySQL_Connect(SERVER, USER, PASSWORD)
or die ("Nepodařilo se připojit k databázovému serveru: ".MySQL_error());
if(!MySQL_Select_DB(DB_NAME)) {
echo "Nepodařilo se připojit k databázi <tt>", DB_NAME, "</tt>\n";
exit;
}
mysql_query("set names 'utf8'");
return $spojeni;
}
Prostě skript zhebne a nic.
Po gůglování zjišťuju, že prostě tato fce byla ve verzi PHP 7 zrušena :-(
2017-06-10
[editovat]Konečně mám chvilku snažit se to nějak řešit:
Nahradím to tedy:
function connectDB() {
$link = mysqli_connect(SERVER, USER, PASSWORD, DB_NAME);
if (!$link) {
echo "Error: Unable to connect to MySQL – nejde se připojit k databázi :-(." . PHP_EOL;
echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
exit;
}
echo "Success: A proper connection to MySQL was made! The my_db database is great!!<br/>" . PHP_EOL;
echo "Host information: " . mysqli_get_host_info($link) . "<br/>" . PHP_EOL;
mysqli_query($link, "set names 'utf8'");
return $link;
}
Všechna další
mysql_query("...");
nahradím:
mysqli_query($link, "...");
Skript zřejmě projde, ale databáze se jeví, jako by v ní nic nebylo. Ach jo :-(
w10-localhost-php7
[editovat]2017-06-12
[editovat]Matěj mi v tom skriptu přepsal ty mysql_query() na mysqli_query() a ještě nějaké drobnosti. Už to chodí.
2017-06-19
[editovat]Náhodou zjišťuji, že v tom skriptu nefunguje vložení jiného překladu. Konzultuji s Matějem, že prý pod Windows mu to chodí normálně. Dopisuje mi tam kousek kódu pro ladění:
function sel() {
global $db;
list($table, $date, $which, $transl, $value) = explode("_", $_REQUEST['sel']);
switch ($table) {
case "losung":
if ($value == "new") {
$query = "INSERT INTO `$table`(`sel`, `date`, `which`, `lang`, `transl`, `source`, `intro`, `text`)
VALUES('1', '$date', '$which', 'cs', '$transl', '', '', '')";
} else {
$query = "UPDATE `$table` SET `sel`='$value' WHERE `date`='{$date}' AND `which`='{$which}' AND `transl`='$transl'";
}
break;
case "song":
if ($value == "new") {
$query = "INSERT INTO song(`sel`, `date`, `which`, `lang`) VALUES('1', '$date', '$which', '$transl')";
} else {
$query = "UPDATE `$table` SET `sel`='$value' WHERE `date`='{$date}' AND `which`='{$which}' AND `lang`='$transl'";
}
break;
case "comment":
if ($value == "new") {
$query = "INSERT INTO comment(`sel`, `date`, `lang`, `text`) VALUES('1', '$date', '$transl', '')";
echo $query;
} else {
$query = "UPDATE `$table` SET `sel`='$value' WHERE `date`='{$date}' AND `lang`='$transl'";
}
break;
case "day":
$query = "UPDATE `$table` SET `sel`='$value' WHERE `date`='{$date}' AND `which`='{$which}' AND `lang`='{$transl}'";
break;
}
$result = $db->query($query);
if (DEBUG) {
if ($result === true) {
echo 'QUERY: ' . $query;
echo ' proběhla v pořádku<br>';
echo 'změněných řádků: ' . $db->affected_rows;
} else {
echo 'QUERY: ' . $query;
echo ' proběhla s chybou<br>';
echo 'chyba: ' . $db->error . '<br>';
}
}
}
Na základě toho zjišťuji, že chyba je v tom, že příkaz INSERT INTO> nevkládá do databáze hodnotu pole `seq`, které nemá v databázi nastavenu defaultní hodnotu. Je divné, že dřívější PHP v. 5.x tam zkrátka vložil do toho pole nulu.
w11-Mirkovo
[editovat]2017-06-12
[editovat]Zapracovávám do databáze Mirkovy opravy. Bohužel je dělal do staré verze databáze na webu (byl rychlejší než já), takže jsem musel nejdříve vyšetřit, v jaké době jeho editace probíhaly, pak vyselektovat jeho editace oproti předcházející verzi databáze, a pak tyto jeho editace zohlednit v aktuální databázi. Tím pádem jsem si přidělal dost práce navíc – cena za to, když člověk pořád něco nestíhá.
- hes18w11a-dle_Mirka.sql
- hes18w11b-dash.sql
- hes18w11c-korekt.sql
2017-06-15
[editovat]Šturmuju, hledám další chyby, sázím předběžnou verzi Hesel, tisknu si ji:
- hes18w11d-TeX.sql
2017-06-16..17
[editovat]Jedeme do Marburgu, po cestě dělám korektury na papíře.
Na výstavě #Bildungsereignis Reformation! se snažím pochopit ty souvislosti české reformace (vedoucí až ke stavovskému povstání 1518-20).
2017-06-19
[editovat]- hes18w11e-po_marburgu.sql – zapracovávám korektury z papíru do databáze:
- hes18w11f-done.sql – další korektury dle xml apod.
Přitom zjišťuji, že ten skript pod PHP 7.x neumí přidávat záznamy do databáze – zpětně řeším s Matějem – viz výše.
Počítám, jaké máme letos použité překlady:
- 70 % CEP
- 14 % Kralička
- 15 % ostatní překlady
w10-localhost-php7
[editovat]2017-06-12
[editovat]PHP verse 7 se chová naprosto jinak než předchozí 5, nutno vše předělat, pomáhá Matěj.
w11-Mirkovo
[editovat]2017-06-19
[editovat]Stažená databáze od Mirka
w12-comment
[editovat]2017-06-30
[editovat]Dodělání komentářů – výročí
w13-rfc
[editovat]2017-06-30
[editovat]Předání ke korektuře databáze
w14-z_rfc
[editovat]2017-08-08
[editovat]Výstup z korektury databáze
w15-patch
[editovat]2017-08-09
[editovat]w16-patch
[editovat]2017-08-11
[editovat]Sazba v TeXu
w17-plotry
[editovat]2017-08-15
[editovat]Kontrolní plotry z tiskárny
w18-kalendarium
[editovat]2017-08-16
[editovat]Dodělání kalendaria – Sláavek
w19-final_plotr
[editovat]2017-08-18
[editovat]Finální plotr z tiskárny