Her begynder notater til udvikling af en Scrum-Kanban. FormĂ„let med projektet er at udvikle en Kanban, der kan kĂžre som et plugin i WordPress. Dels for at arbejde teoretisk med IT-projektstyring – og dels for at prĂžve  muligheder med HTML5 og CSS.
Koden herunder stammer fra W3Schools og den laver den basale funktionalitet; men lĂžsningen er ikke persistent. En persistent lĂžsning bĂžr kunne udvikles via PHP og MySQL. Sprints er:
Gemmefunktion – overfĂžrer data til databasen via POST.
Test af et ny filter til Sony A290. Kontraster er markant forbedrede; men billedet bliver mÞrkere. Normalt bruges filteret til at dÊmpe en lidt for lys himmel med hvide skyer eller til at fjerne reflekser pÄ metal eller vandoverflader.
Du behÞver ikke at gÞre andet end det. Siden viser kun et flag pÄ en flagdag. Hvis den er blank er det altsÄ forklaringen.
De fÞlgende afsnit forklarer, hvordan PHP-koden virker. Hvis det lyder lidt for nÞrdet, sÄ drop resten af denne artikel.
Klassen flagdag
Men hvordan fungerer denne PHP-kode sÄ? FÞrst har jeg defineret en klasse, der indeholder de vigtigste funktioner (der er kun to funktioner):
class flagDag
{
// printer hvis dagen er en flagdag
public function dag($dato, $maaned, $hvad) {
$flagstang = "dannebrog.gif"; // stien til billedet af Dannebrog
// undersĂžger om det er en flagdag
if (date('m') == $maaned && date('d') == $dato) {
echo "<img src='" . $flagstang . "' alt='Dannebrog' width='50' height='38' >"; // kan skaleres efter behov
echo "<p style='font-size:smaller'>I dag flages for: " . $hvad . "</p>";
}
}
// sÄdan: plusTid('+3 weeks +5 days');
function fePaaske($tid, $hvad) {
// Denne funktion beregner dato for skĂŠve helligdage
$date = date("Y-m-d", easter_date()); // pÄskedag
$newdate = strtotime ( $tid, strtotime ( $date ) ) ; // her plus-minuses
$newdate = date ( 'd,m' , $newdate ); // datoen formatteres
return $newdate . "," . $hvad; // udskriver resultatet
}
}
Dannebrog vises ved hjĂŠlp af denne funktion:
public function dag($dato, $maaned, $hvad) {
$flagstang = "dannebrog.gif"; // stien til billedet af Dannebrog
// undersĂžger om det er en flagdag
if (date('m') == $maaned && date('d') == $dato) {
echo "<img src='" . $flagstang . "' alt='Dannebrog' width='50' height='38' >"; // kan skaleres efter behov
echo "<p style='font-size:smaller'>I dag flages for: " . $hvad . "</p>";
}
}
Funktionen bruger $dato og $maaned til at definere datoen. $hvad er en kort beskrivelse af begivenheden. NĂ„r dagen og mĂ„neden indtrĂŠffer vises et flag (dannebrog.gif) samt den korte beskrivelse af begivenheden, fx “H.K.H. Prins Joachim”.
Herefter var det kun et spÞrgsmÄl om at instantiere klassen:
$ny = new flagDag(); // instantierer klassen
… og om at definere diverse flagdage, som fremgĂ„r af kalenderen hos Danmarks-Samfundet. Flagdagen defineres sĂ„dan:
$ny->dag(01,01,"NytÄrsdag");
PĂ„skeproblemet
De “kalenderfaste” flagdage var relativt simple. Det er straks vĂŠrre med pĂ„sken, der fĂžlger en relativt kompleks mĂ„nekalender. da.wikipedia.org skriver at pĂ„sken falder sĂ„dan:
Beregning af pÄskedagene krÊver altsÄ viden om jÊvndÞgn, og hvornÄr det er fuldmÄde. Heldigvis har PHP en funktion, der beregner pÄskedagen, nemlig easter_date().
PÄ nettet fandt jeg en metode til at lÊgge tid til en dato, en den funktionalitet byggede jeg sÄ ind i denne funktion:
function fePaaske($tid, $hvad) {
// Denne funktion beregner dato for skĂŠve helligdage
$date = date("Y-m-d", easter_date()); // pÄskedag
$newdate = strtotime ( $tid, strtotime ( $date ) ) ; // her plus-minuses
$newdate = date ( 'd,m' , $newdate ); // datoen formatteres
return $newdate . "," . $hvad; // udskriver resultatet
}
Kirkens pÄskedag er bestemmende for en hel rÊkke helligdage, der falder lidt forskelligt fra Är til Är. Systemet ser sÄdan ud:
PalmesĂžndag – sĂžndagen fĂžr pĂ„ske (pĂ„ske minus en uge)
SkĂŠrtorsdag – pĂ„ske sĂžndag minus 3 dage (Halv stang t. kl. 12:00)
1. pĂ„skedag – pĂ„skesĂžndagen
2. pĂ„skedag – pĂ„ske sĂžndag + en dag
Store Bededag – 4. fredag efter pĂ„ske
Kristi Himmelfart – 6. torsdag efter skĂŠrtorsdag
1. pinsedag – 7. sĂžndag efter pĂ„ske
2. pinsedag – pinsedag + 1dag
Julen falder heldigvis pĂ„ faste datoer, sĂ„ det er til at have med at gĂžre…
1. juledag – fast dato 25.12.
2. juledag – fast dato 26.12.
Ved hjÊlp af min funktion kan man lÊgge Är, dage, uger og mÄneder til pÄskedagen. Og derfor bliver beregningen af fx. 1. pinsedag relativt simpel:
Men scriptet returnerer en streng og funktionen, der viser en falgdag krĂŠver to tal og en streng. En streng kan forvandles til et tal med (int); men jeg har kun brug for en del af strengen. Dagen og mĂ„neden skal isoleres ved hjĂŠlp af substring. Det leder frem til denne magiske formular, der viser flaget pĂ„ de “skĂŠve” helligdage:
Den ovenstÄende kode skulle skrives 8 gange, og det ligner et job for et loop. I en senere version blev denne kode derfor erstattet med et array og et loop. Koden kom til at se sÄdan ud:
$kadosh = array(
$ny->fePaaske("-1 weeks", "PalmesĂžndag"), // PalmesĂžndag
$ny->fePaaske("-3 days", "SkĂŠrtorsdag"), // SkĂŠrtorsdag
$ny->fePaaske("+0 days", "1. PÄskedag"), // 1. PÄskedag (fuldmÄne efter equinox)
$ny->fePaaske("+1 days", "2. PĂ„skedag"), // 2. PĂ„skedag
$ny->fePaaske("+5 days +3 weeks", "Store Bededag"), // Store Bededag
$ny->fePaaske("-3 days +6 weeks","Kristi Himmelfart"), // Kristi Himmelfart
$ny->fePaaske("+7 weeks", "1. Pinsedag"), // 1. Pinsedag
$ny->fePaaske("+7 weeks +1 days", "2. Pinsedag") // 2. Pinsedag
);
$i = 0; // looper derefter gennem kadosh-arrayet og kombinerer ny->dag med ny->fePaaske
while($i <= count($kadosh))
{
$ny->dag(
(int)substr($kadosh[$i],0,2), // dag substring som integer
(int)substr($kadosh[$i],3,4), // mÄned substring som integer
substr($kadosh[$i],6) // hvad (pladrer strengen ud fra 6. karakter)
);
$i++;
};
Tilbage stod at indskrive flagdatoerne i scriptet. Resultatet kan ses her. MÄske. Hvis det ikke er flagdag i dag, sÄ er siden altsÄ blank. Og det var netop meningen. Der skal kun vÊre et flag nÄr det er en flagdag.
Debugging
Nu fÄr vi sÄ se, om koden virker. Debugging varer et Ärs tid. Hvis multimusen.dk flager pÄ en flagdag, sÄ virker sagerne jo.
Koden
Herunder er PHP-koden som den sÄ ud i fÞrste omgang, inden loopet herover. Det er selvfÞlgelig den rÄ betaversion; men den kan bygges ind i et PHP-baseret website. Det forudsÊttes, at koden ligger i samme mappe som billedet af flaget.
<?php
/* DANSKE FLAGDAGE
Af: Per Thykjaer Jensen
Beskrivelse: Printer danske flagdage til en webside via PHP.
Version: 0.2 Beta - flagdage.
Ăndringer:
Version 0.2 - denne version kan beregne kirkelige flagdage baseret pÄ pÄskedag.
0.11 - Dannebrog som .gif af hensyn til kompabilitet.
Version 0.1 - basal funktionalitet. PĂ„ flagdage med fast dato vises et flag.
Dato: 20120608
Copyright: GPLv3 - se licensen her: http://www.gnu.org/copyleft/gpl.html
*/
class flagDag
{
// printer hvis dagen er en flagdag
public function dag($dato, $maaned, $hvad) {
$flagstang = "dannebrog.gif"; // stien til billedet af Dannebrog
// undersĂžger om det er en flagdag
if (date('m') == $maaned && date('d') == $dato) {
echo "<img src='" . $flagstang . "' alt='Dannebrog' width='50' height='38' >"; // kan skaleres efter behov
echo "<p style='font-size:smaller'>I dag flages for: " . $hvad . "</p>";
}
}
// sÄdan: plusTid('+3 weeks +5 days');
function fePaaske($tid, $hvad) {
// Denne funktion beregner dato for skĂŠve helligdage
$date = date("Y-m-d", easter_date()); // pÄskedag
$newdate = strtotime ( $tid, strtotime ( $date ) ) ; // her plus-minuses
$newdate = date ( 'd,m' , $newdate ); // datoen formatteres
return $newdate . "," . $hvad; // udskriver resultatet
}
}
$ny = new flagDag(); // instantierer klassen
// FLAGDAGE
$ny->dag(01,01,"NytÄrsdag");
$ny->dag(05,02,"H.K.H. Kronprinsesse Mary");
$ny->dag(06,02,"H.K.H. Prinsesse Marie");
$ny->dag(09,04,"Danmarks besÊttelse. Der flages pÄ halv stang til kl. 12:00.");
$ny->dag(16,04,"H.K.H. Dronning Margrethe II.");
$ny->dag(29,04,"H.K.H. Prinsesse Benedikte.");
$ny->dag(05,05,"Danmarks befrielse 1945.");
$ny->dag(26,05,"H.K.H. Kronprins Frederik.");
$ny->dag(05,06,"Grundlovsdag (1849).");
$ny->dag(07,06,"H.K.H. Prins Joachim"); // protektor for Danmarks-Samfundet
$ny->dag(11,06,"H.K.H. Prinsgemal Henrik.");
$ny->dag(15,06,"Valdemarsdag og Genforeningen (1920)");
$ny->dag(05,09,"H.K.H. Prins Joachim");
$ny->dag(25,12,"Juledag.");
// FORSVARETS FLAGDAGE
$ny->dag(29,01,"Holmens HĂŠderstegn.");
$ny->dag(02,02,"Kampen ved Mysunde (1864).");
$ny->dag(11,02,"Stormen pÄ KÞbenhavn (1659).");
$ny->dag(02,04,"Slaget pÄ Reden (1801).");
$ny->dag(18,04,"Slaget ved DybbĂžl (1864).");
$ny->dag(09,05,"Kampen ved Helgoland (1864).");
$ny->dag(05,06,"Kampen ved DybbĂžl (1848).");
$ny->dag(01,07,"Slaget i KĂžge Bugt (1677).");
$ny->dag(06,07,"Slaget ved Fredericia (1849).");
$ny->dag(25,07,"Slaget ved Isted 1850.");
$ny->dag(04,10,"Stormen pÄ Frederiksstad 1850.");
/* KIRKELIGE FLAGDAGE
De "skÊve" kirkelige helligdage fÞlger en mÄnekaldender og falder et antal dage efter en bestemt fuldmÄne.
Udgangspunktet for beregningerne er pÄskedag.
Systemet ser sÄdan ud:
PalmesÞndag - sÞndagen fÞr pÄske (pÄske minus en uge)
SkÊrtorsdag - pÄske sÞndag minus 3 dage (Halv stang t. kl. 12:00)
1. pÄskedag - pÄskesÞndagen
2. pÄskedag - pÄske sÞndag + en dag
Store Bededag - 4. fredag efter pÄske
1. pinsedag - 7. sÞndag efter pÄske
2. pinsedag - pinsedag + 1dag
Kristi Himmelfart - 6. torsdag efter skĂŠrtorsdag
1. juledag - fast dato 25.12.
2. juledag - fast dato 26.12.
Eftersom de skÊve helligdage afhÊnger af pÄsken og mÄnen sÄ er PHPs pÄskeberegning et udgangspunkt for tidsberegningerne
*/
$palmeS = $ny->fePaaske("-1 weeks", "PalmesĂžndag"); // PalmesĂžndag
$skaerT = $ny->fePaaske("-3 days", "SkĂŠrtorsdag"); // SkĂŠrtorsdag
$PaaD = $ny->fePaaske("+0 days", "1. PÄskedag"); // 1. PÄskedag (fuldmÄne)
$APaaD = $ny->fePaaske("+1 days", "2. PĂ„skedag"); // 2. PĂ„skedag
$stB = $ny->fePaaske("+5 days +3 weeks", "Store Bededag"); // Store Bededag
$KrH = $ny->fePaaske("-3 days +6 weeks","Kristi Himmelfart"); // Kristi Himmelfart
$fPin = $ny->fePaaske("+7 weeks", "1. Pinsedag"); // 1. Pinsedag
$aPin = $ny->fePaaske("+7 weeks +1 days", "2. Pinsedag"); // 2. Pinsedag
$ny->dag(25,12,"1. Juledag."); // helligdage med fast dato
$ny->dag(26,12,"2. Juledag.");
// Et loop gennem et array kunne ha gjort det fĂžlgende mere elegant ... nĂŠste version ...
$ny->dag((int)substr($palmeS,0,2), // PalmesĂžndag
(int)substr($palmeS,3,4),
substr($palmeS,6)
);
$ny->dag((int)substr($skaerT,0,2), // SkĂŠrtorsdag
(int)substr($skaerT,3,4),
substr($skaerT,6)
);
$ny->dag((int)substr($paaD,0,2), // PĂ„skedag
(int)substr($paaD,3,4),
substr($paaD,6)
);
$ny->dag((int)substr($APaaD,0,2), // 2. PĂ„skedag
(int)substr($APaaD,3,4),
substr($APaaD,6)
);
$ny->dag((int)substr($stB,0,2), // Store Bededag
(int)substr($xstB,3,4),
substr($stB,6)
);
$ny->dag((int)substr($KrH,0,2), // Kristi Himmelfartsdag
(int)substr($KrH,3,4),
substr($KrH,6)
);
$ny->dag((int)substr($fPin,0,2), // 1. Pinsedag
(int)substr($fPin,3,4),
substr($fPin,6)
);
$ny->dag((int)substr($aPin,0,2), // 2. Pinsedag
(int)substr($aPin,3,4),
substr($aPin,6)
);
/* PRIVATE FLAGDAGE
IndfĂžr dine private flagdage herunder
Format: "dd,mm, begivenhed"
eksempel $ny->dag(03,06,"test");
*/
// eksempel
// $ny->dag(27,02,"Pers fĂždselsdag");
?>
Koden herover kan faktisk bruges til mange ting. Ved fĂ„ ĂŠndring kan den gĂžres til et WordPress plugin – og det er i denne form at jeg bruger koden nu.
Det kunne vÊre festligt, hvis min webside hejste Dannebrog pÄ flagdagene. Derfor har jeg eksperimenteret lidt med en PHP-sag, der viser Dannebrog og begivenheden pÄ flagdage.
Resultatet ses herunder (og ja: hvis dagen i dag ikke er en flagdag, sĂ„ kan du ikke se noget herunder…).
De kirkelige hellig- og flagdage skal beregnes via PHPs easter_date() klasse. Det er lidt mere kompliceret – de skĂŠve helligdage kommer med i den nĂŠste version. Kopier koden herunder til din webside:
Erhvervsakademi Aarhus (EAK) bruger i stigende omfang sociale medier. Hjemmesiden eaaa.dk linker til Facebook, YouTube og LinkedIN. De sociale medier spiller efterhÄnden en vigtig rolle i organisationens kommunikation. Men hvad er sociale medier, hvordan og hvorfor skal EAK bruge dem?
Jeg tager udgangspunkt i videnskabelige undersÞgelser af digital kommunikation pÄ sociale medier. Laswells lineÊre kommunikationsmodel sammenlignes med Nancy Baym, der arbejder med interpersonelle relationer via digitale medier. Via Sepstrups kampagneteorier vil jeg se pÄ Facebooks strategiske potentiale. FormÄlet med analysen er at opnÄ en forstÄelse af hvordan kommunikation fungerer pÄ Facebook.
Det videnskabsteoretiske udgangspunkt er â… anvendt forskning som benytter grundforskningens resultater til at lĂžse mere specifikke problemer…â [key-4, p. 194]
Facebook er et eksempel pÄ et af mange sociale medier. Konklusionerne fra min analyse kan med stor sandsynlighed overfÞres til andre sociale platforme. FormÄlet med analysen er derfor at undersÞge, hvordan en organisation kan positionere sig strategisk via sociale medier.
On the other, and we keep forgetting this, most people have no idea what they want. Ford noted that if you asked the customer what they wanted, they would say a faster horse. Sonyâs Akio Morita observed that there was little point in doing customer surveys because customers have no idea what is possible. He went ahead and made the Walkman, knowing that people would buy it, even though no-one had asked for it. Great visions often live far ahead of customer desires. Sometimes it is best just to do it and then ask.
Multimusen.dk will set a few cookies from Doubleclick, Google and the Social Media plugins they ay set some cookies. Some of my pages use APIs - such as YouTube, LinkedIn, Google Fonts, Google Maps, Mapbox, Spotify, Jetpack, Twitter, Facebook &c.. Such plugins may set the odd cookie.