Big addition in the thesis files
I've added a lot of new files I've been working on lately, as well as a ton of modifications to existing files. Some files have been deleted, but they were obsolete anyway.
- Author
- Maarten Vangeneugden
- Date
- Aug. 5, 2018, 10:23 p.m.
- Hash
- a4f6a463f4956f9ab4e463cad3d34bc7e7a98dc0
- Parent
- 449c0cd5e4ab16a9ba0f1f57f85814189daa8144
- Modified files
- docs/thesis/BlackBoard.org
- docs/thesis/beveiliging.org
- docs/thesis/blackboard.org
- docs/thesis/client-side-scripting.org
- docs/thesis/info-processen.org
- docs/thesis/inplannen.org
- docs/thesis/lokaalreservaties.org
- docs/thesis/master.org
- docs/thesis/postgres.org
- docs/thesis/sources.bib
- docs/thesis/toekomst.org
- docs/thesis/uurrooster.org
- docs/thesis/uurroosters.org
- docs/thesis/verbeteringspunten_joeni.org
- docs/verslagen.org β docs/thesis/verslagen.org
docs/thesis/BlackBoard.org ΒΆ
0 additions and 11 deletions.
View changes Hide changes
1 |
- | De UHasselt gebruikt al jaren BlackBoard als digitaal platform voor het |
2 |
- | uitwisselen van studiemateriaal tussen docenten en studenten.\\ |
3 |
- | ** PropriΓ«taire software |
4 |
- | *** Service as a software substitute (SaaSS) |
5 |
- | ** Kostelijk |
6 |
- | <Uit goede bron heb ik kunnen vernemen dat BlackBoard de UHasselt jaarlijks |
7 |
- | ~β¬100.000 euro kost.>.... |
8 |
- | ** Geen huisstijl mogelijk |
9 |
- | ** Onstabiel |
10 |
- | ** Slechte reputatie |
11 |
- |
docs/thesis/beveiliging.org ΒΆ
1 addition and 1 deletion.
View changes Hide changes
1 |
1 |
Web-applicaties worden blootgesteld aan tal van mogelijke beveiligingsproblemen. |
2 |
2 |
Een beetje /cracker/ kan een onbeveiligde website in weinig tijd |
3 |
3 |
binnendringen.\\ |
4 |
4 |
Mede dankzij het gebruik van Django zijn de meeste mogelijke veiligheidslekken |
5 |
5 |
gedicht. De belangrijkste onderwerpen (en gemaakte afwegingen) worden hier uitgelegd. |
6 |
6 |
** Cross site scripting |
7 |
7 |
Cross site scripting (XSS) laat toe om scripts te injecteren in de browsers van andere |
8 |
8 |
gebruikers door bv. scripts op te slaan in de databank, die dan later worden |
9 |
9 |
uitgelezen en op de computer van andere gebruikers wordt uitgevoerd. |
10 |
10 |
|
11 |
11 |
Binnen Django wordt XSS opgelost door middel van |
12 |
12 |
/[[https://docs.djangoproject.com/en/2.0/ref/templates/language/#automatic-html-escaping][automatic HTML escaping]]/; de data die gebruikers ingeven, wordt behandeld als "onveilig". |
13 |
13 |
*** Orgmode |
14 |
14 |
Binnen Joeni kan gebruik worden gemaakt van Orgmode-syntax om teksten van |
15 |
15 |
opmaak te voorzien, zoals vette tekst, hyperlinks, lijsten enz. |
16 |
16 |
|
17 |
17 |
Het is technisch gezien ook mogelijk om broncode in Org te markeren, zelfs om |
18 |
18 |
deze uit te laten voeren, met alle [[https://orgmode.org/org.html#Code-evaluation-security][veiligheidsrisico's]] die daaruit volgen. |
19 |
19 |
|
20 |
20 |
Ik heb toch geopteerd om Orgmode-syntax toe te laten voor data die door |
21 |
21 |
gebruikers wordt verstuurd, maar *enkel* voor personeel van de UHasselt. |
22 |
22 |
Personeelsleden kunnen makkelijker aansprakelijk gehouden worden voor misbruik |
23 |
23 |
van de hen aangeleverde voorrechten, en de mogelijke gevolgen van dergelijk misbruik |
24 |
24 |
zullen volgens mij afdoende werken om XSS via Orgmode tegen te gaan. Moest dat |
25 |
25 |
niet kloppen, dan kan Orgmode altijd gemakkelijk uitgeschakeld worden, slechts |
26 |
26 |
met een tolereerbaar verlies aan opmaak binnen Joeni. |
27 |
27 |
|
28 |
28 |
** Externe malafide programmatuur |
29 |
29 |
Bij het opvragen van scripts buiten de eigen server is er steeds een risico dat |
30 |
30 |
er malafide code wordt binnengehaald; men weet niet welke acties ondernomen |
31 |
31 |
worden op die andere servers om kraken tegen te gaan.\\ |
32 |
32 |
Dit is al verscheidene keren voorgevallen <BRONNEN>, en de kern van het probleem is tot nu |
33 |
33 |
toe nog altijd niet opgelost, omdat het niet kΓ‘n worden opgelost: Downloaden van |
34 |
34 |
ongecontroleerde scripts houdt een inherent veiligheidsrisico in. |
35 |
35 |
|
36 |
36 |
Joeni lost dit op door simpelweg _geen_ externe scripts in te laden. Dit is |
37 |
37 |
namelijk ook een reden waarom /client-side scripting/ overal vermeden wordt; |
38 |
38 |
het opent een deur tot problemen waarover geen interne controle mogelijk is. |
39 |
- | |
+ |
39 |
|
40 |
40 |
Alle software, media, /stylesheets/, bibliotheken, ... worden vanaf de server |
41 |
41 |
gedraaid. |
42 |
42 |
** Clickjacking |
43 |
43 |
|
44 |
44 |
** Cross site request forgery |
45 |
45 |
Cross site request forgery (CSRF) |
46 |
46 |
|
47 |
47 |
** Kraken van wachtwoorden en -zinnen |
48 |
48 |
*** Geen verplichte wijzigingen |
49 |
49 |
docs/thesis/blackboard.org ΒΆ
198 additions and 0 deletions.
View changes Hide changes
+ |
1 |
Blackboard, het digitale platform dat wordt aangeleverd door Blackboard Inc.,, |
+ |
2 |
wordt (voornamelijk) op de UHasselt gebruikt voor het verspreiden van |
+ |
3 |
lesmateriaal onder de studenten en het maken van aankondigingen betreffende het |
+ |
4 |
vak of opdrachten die moeten worden ingediend. |
+ |
5 |
|
+ |
6 |
Een groot deel van hoe Joeni gebouwd is, bestaat uit functionaliteit die |
+ |
7 |
Blackboard aanbiedt, en dat is niet zonder reden. Blackboard is een slechte zaak |
+ |
8 |
voor de universiteit en haar studenten, en daar zijn verschillende redenen voor. |
+ |
9 |
|
+ |
10 |
*** Onbetrouwbaarheid |
+ |
11 |
Veel Amerikaanse universiteiten hebben /vroeger/ al samengewerkt met Blackboard, |
+ |
12 |
met de nadruk op vroeger. Er zijn op het internet tal van artikelen te vinden |
+ |
13 |
over deze universiteiten die klagen over het stelselmatig uitvallen van |
+ |
14 |
Blackboard@@latex:\cite{bb-blackout1}\cite{bb-blackout2}@@, verlies van |
+ |
15 |
data@@latex:\cite{bb-dataloss}@@ en |
+ |
16 |
crashes@@latex:\cite{bb-crash}@@, |
+ |
17 |
Er zijn ook hier en daar pagina's opgericht door studenten die een iets |
+ |
18 |
ongenuanceerdere toon aanslaan zoals een [[https://web.archive.org/web/20110719215525/http://wwwapps.ivytech.edu/phpbb/viewtopic.php?p=14937&highlight=&sid=461341d24f37a90f0f83c16fc3bedcae]["Ik haat Blackboard"-groep]], maar hierop |
+ |
19 |
zal niet verder worden ingegaan. |
+ |
20 |
|
+ |
21 |
Uit persoonlijke ervaringen weet ik zelf ook dat Blackboard soms niet |
+ |
22 |
werkt naar behoren. Een voorbeeld hiervan was een opdracht voor het vak Computernetwerken, |
+ |
23 |
waarin Blackboard de inzendingen weigerde omdat deze "gevaarlijk" waren, ook al |
+ |
24 |
waren dit gewoon tekstbestanden met een .py-extensie. Het bestand in een |
+ |
25 |
zip-bestand plaatsen werkte wel.\\ |
+ |
26 |
Zo nu en dan was de website op zich gewoon niet bereikbaar, en gaf het een HTTP |
+ |
27 |
503-error. Na een tijdje waren deze problemen wel weg. |
+ |
28 |
|
+ |
29 |
Enige nuance vereist ook dat deze universiteiten vaak ook veel meer van hun |
+ |
30 |
digitale behoeften op de schouders van Blackboard plaatsen, en het dus ook |
+ |
31 |
waarschijnlijker is dat ze in contact komen met problemen. Maar de frequentie |
+ |
32 |
van deze problematiek doet vermoeden dat het zeker geen eenmalige problemen zijn. |
+ |
33 |
*** Hoge kosten |
+ |
34 |
Tijdens een vergadering van de Studentenraad kwam naar voren dat het contract |
+ |
35 |
met Blackboard inc. de UHasselt *jaarlijks meer dan β¬100.000* kost. Dit is geld |
+ |
36 |
dat makkelijk gespendeerd kan worden aan andere zaken als voor een andere |
+ |
37 |
oplossing gekozen wordt. |
+ |
38 |
|
+ |
39 |
Als tegenargument kan natuurlijk worden aangevoerd dat dit gewoon de prijs is |
+ |
40 |
die men betaalt voor dergelijke software, en dat informatici aannemen voor |
+ |
41 |
interne software te schrijven minstens zo duur is. Het is echter de vraag of die |
+ |
42 |
prijs opweegt tegen de punten die in dit hoofdstuk worden aangehaald. |
+ |
43 |
*** Gebruiksvoorwaarden |
+ |
44 |
De gebruiksvoorwaarden die Blackboard oplegt aan hun gebruikers staat geenszins |
+ |
45 |
in verhouding tot wat nodig is om de goede werking van de dienst te waarborgen. |
+ |
46 |
Deze voorwaarden gaan in enkele gevallen uiterst ver, gegeven enkele voorbeelden hiervan. |
+ |
47 |
|
+ |
48 |
Het feit dat deze eisen gesteld worden is een direct gevolg van de [[Onvrije software][propriΓ«taire |
+ |
49 |
software]] die Blackboard is: Onvrije software geeft de ontwikkelaar ervan |
+ |
50 |
oneerlijke macht over de gebruikers, en Blackboard inc. heeft die macht |
+ |
51 |
uitgeoefend. |
+ |
52 |
**** Schending van de privacy |
+ |
53 |
De studenten hebben een recht op privacy bij het uitvoeren van hun academische |
+ |
54 |
verantwoordelijkheden, en dus ook bij het gebruik van de benodigde software hiervoor. |
+ |
55 |
|
+ |
56 |
Blackboard heeft echter bedenkingen hiermee, en vereist dat hun gebruikers (en |
+ |
57 |
dus ook de studenten van de UHasselt) akkoord gaan met hun privacyverklaring.@@latex:\cite{bb-privacy}@@ |
+ |
58 |
Hierin staan dan teksten te lezen zoals het volgende: |
+ |
59 |
#+BEGIN_QUOTE |
+ |
60 |
*Analytics and marketing.* We analyze usage information for sales and |
+ |
61 |
marketing purposes and for trends about our visitors and their demographics and |
+ |
62 |
how they use our websites. This analysis is necessary to further our legitimate |
+ |
63 |
interest in understanding our users and how they interact with us and our |
+ |
64 |
websites, improving our websites and communication |
+ |
65 |
with you (including for marketing purposes). |
+ |
66 |
#+END_QUOTE |
+ |
67 |
Het komt erop neer dat informatie die ze inzamelen gebruikt zal worden voor |
+ |
68 |
reclamedoeleinden. |
+ |
69 |
|
+ |
70 |
Het probleem hiermee is dat studenten gewoon geen keuze hebben of ze hiermee |
+ |
71 |
akkoord gaan of niet: Door niet akkoord te gaan krijgen ze geen toegang tot het |
+ |
72 |
studiemateriaal van hun docenten, zijn ze niet op de hoogte van taken, ... Dit |
+ |
73 |
is natuurlijk ook een gevolg van het gebruik van [[Onvrije software][onvrije software]], maar dat praat het |
+ |
74 |
geenzins goed. |
+ |
75 |
|
+ |
76 |
De UHasselt heeft een verplichting aan haar studenten om hun rechten te |
+ |
77 |
beschermen als ze willen studeren, en Blackboard maakt hier misbruik van hun |
+ |
78 |
positie om data van studenten te misbruiken, of ze dat nu willen of niet. |
+ |
79 |
Het enige wat we hebben is een "belofte" dat de privacy serieus genomen wordt, |
+ |
80 |
maar met dergelijke tegenstrijdige verklaringen is het maar de vraag hoe |
+ |
81 |
betrouwbaar dat is. |
+ |
82 |
|
+ |
83 |
Tot slot is het verwerken van deze gegevens mogelijk in strijd met de Algemene |
+ |
84 |
Verordering Gegevensbescherming; het verwerken van deze gegevens voor |
+ |
85 |
marketingdoeleinden mag enkel met |
+ |
86 |
expliciete toestemming van de gebruiker.@@latex:\cite{eu-gdpr}@@ |
+ |
87 |
Maar opnieuw: de gebruiker heeft hier |
+ |
88 |
als student (of docent) niet echt een keus of hij/zij akkoord gaat of niet. Het is maar |
+ |
89 |
de vraag wat een toestemming die op dergelijke manier verkregen wordt nu |
+ |
90 |
eigenlijk waard is. |
+ |
91 |
|
+ |
92 |
**** Kopieerrechten |
+ |
93 |
Auteurs van creatieve werken zouden zelf moeten kunnen bepalen wanneer hun werken |
+ |
94 |
(publiek domein niet meegerekend) gebruikt mogen worden voor commerciΓ«le |
+ |
95 |
doeleinden. Blackboard stelt echter in hun gebruiksvoorwaarden:@@latex:\cite{bb-tos}@@ |
+ |
96 |
#+BEGIN_QUOTE |
+ |
97 |
By submitting, posting or displaying Content on or through the Products, |
+ |
98 |
you grant us a worldwide, non-exclusive, royalty-free license (with the right to sublicense) |
+ |
99 |
to use, host, store, copy, reproduce, process, adapt, modify, publish, transmit, |
+ |
100 |
create derivative works from, communicate, display, and/or distribute such Content |
+ |
101 |
in any and all media or distribution methods (now known or later developed) as |
+ |
102 |
part of providing any of the Products. You agree that this license includes the |
+ |
103 |
right for Blackboard to provide, promote, and improve the Products and to make |
+ |
104 |
Content submitted to or through the Products available to other institutions or |
+ |
105 |
individuals as part of providing the Products (including after termination of |
+ |
106 |
your use of the Products) and in accordance with your privacy settings. You |
+ |
107 |
represent and warrant that you have all the rights, power and authority |
+ |
108 |
necessary to grant the rights granted herein to any Content that you submit. |
+ |
109 |
|
+ |
110 |
../.. |
+ |
111 |
|
+ |
112 |
Blackboard may exercise the rights to your Content granted under these Terms |
+ |
113 |
without liability for payment of any guild fees, residuals, payments, fees, or |
+ |
114 |
royalties payable under any collective bargaining agreement, licensing |
+ |
115 |
arrangement or otherwise. |
+ |
116 |
#+END_QUOTE |
+ |
117 |
Er is geen reden voor Blackboard om te eisen van studenten (en andere gebruikers |
+ |
118 |
zoals docenten) dat Blackboard inc. hun werken voor praktisch alles mag |
+ |
119 |
gebruiken, zonder enige vorm van compensatie of naamsvermelding. Opnieuw maken ze hiermee |
+ |
120 |
misbruik van hun positie als digitaal platform van universiteiten om eisen te |
+ |
121 |
stellen aan gebruikers waar ze normaal vrijwel nooit mee akkoord zouden gaan. |
+ |
122 |
|
+ |
123 |
*** Onvrije software |
+ |
124 |
De software die Blackboard gebruikt, is propriΓ«taire software, waarvan de |
+ |
125 |
werking niet bekend is, in die zin dat de UHasselt geen inzage heeft in hoe hun |
+ |
126 |
data wordt afgehandeld. Gegeven [[Gebruiksvoorwaarden][de gebruiksvoorwaarden]] doet dit vermoeden dat er |
+ |
127 |
ook activiteiten gebeuren die niet noodzakelijk zijn, zoals het gebruik van de |
+ |
128 |
data voor marketing en profilering van studenten. |
+ |
129 |
|
+ |
130 |
De propriΓ«taire software maakt dit mogelijk; door de broncode verborgen te |
+ |
131 |
houden en fundamentele rechten te ontzeggen, |
+ |
132 |
kan er geen controle plaatsvinden op wat er nu echt gebeurt met de data |
+ |
133 |
van onze studenten. Sterker: Het gebrek aan controle (en de positie die |
+ |
134 |
Blackboard heeft binnen de universiteit), samen met de wetenschap dat de |
+ |
135 |
gebruikers hier weinig verweer tegen kunnen bieden, zet aan tot misbruik van die |
+ |
136 |
machtspositie, en het implementeren van functionaliteit die de gebruikers nefast |
+ |
137 |
behandeld. Dit wordt ook wel /malware/ genoemd. |
+ |
138 |
|
+ |
139 |
We kunnen zelf ook de software niet aanpassen naar de behoeften van de UHasselt, |
+ |
140 |
ook hiervoor zijn we afhankelijk van Blackboard inc. |
+ |
141 |
|
+ |
142 |
Kortom: Doordat Blackboard geen vrije software is, heeft de universiteit geen |
+ |
143 |
controle over de software. |
+ |
144 |
|
+ |
145 |
Joeni zou voor de student op dezelfde manier als Blackboard bereikt worden, maar |
+ |
146 |
de broncode van Joeni is wél vrij in te zien (dit is namelijk ook één van de |
+ |
147 |
veiligheidsgaranties). De studenten kunnen er sowieso redelijkerwijs op vertrouwen dat de |
+ |
148 |
universiteit hun rechten ter harte neemt, maar met vrije software hebben ze ook |
+ |
149 |
een garantie hiervoor. |
+ |
150 |
*** Toledo & Minerva/Ufora |
+ |
151 |
De Universiteit Gent[fn:minerva], Vrije Universiteit Brussel en Katholieke Universiteit Leuven maken geen gebruik van |
+ |
152 |
externe bedrijven voor hun digitale behoeften. In plaats daarvan gebruiken zij |
+ |
153 |
software "van het huis"; de software is ontwikkeld voor en door de universiteit |
+ |
154 |
zelf. Het toont aan dat een universitair digitaal platform bouwen mogelijk is, |
+ |
155 |
en dat het academische standaarden kan aanhouden. Er is geen nood om te |
+ |
156 |
vertrouwen op een bedrijf zoals Blackboard, en genoegen te nemen met een |
+ |
157 |
"algemene" oplossing. |
+ |
158 |
|
+ |
159 |
[fn:minerva] In het afgelopen academiejaar heeft de UGent een |
+ |
160 |
aanbesteding uitgegeven voor bedrijven om een nieuwe Minerva te bouwen. Dit |
+ |
161 |
nieuwe programma zal Ufora heten, en (het ondertussen vijftien jaar oude) |
+ |
162 |
Minerva gaandeweg vervangen.@@latex:\cite{ufora}@@ Alhoewel |
+ |
163 |
zij dus ook overschakelen op een extern bedrijf, kiezen zij hiermee nog steeds |
+ |
164 |
voor een "persoonlijke" oplossing, en niet voor iets wat niet specifiek voor hen gemaakt is. |
+ |
165 |
|
+ |
166 |
Natuurlijk zijn deze universiteiten aanzienlijk groter dan de UHasselt wat |
+ |
167 |
betreft het aantal studenten. De Universiteit Antwerpen |
+ |
168 |
gebruikt ook Blackboard als digitaal platform, en telt zelf ook al 20.000 studenten. |
+ |
169 |
Maar de UHasselt heeft eerder zelf ook al de |
+ |
170 |
ambitie geuit om te blijven groeien@@latex:\cite{uhasselt-groeit}@@, en voor een |
+ |
171 |
langetermijnoplossing is een oplossing op maat zeker geen overbodige luxe. |
+ |
172 |
*** Informatica binnen de UHasselt |
+ |
173 |
Binnen de faculteit Wetenschappen op de UHasselt zijn er niet veel |
+ |
174 |
masteropleidingen. Maar buiten de Master of Statistics wordt er wel fel ingezet |
+ |
175 |
op de Master in de Informatica, met maar lieft zes (!) mogelijke |
+ |
176 |
specialisatieprofielen@@latex:\cite{opleiding-informatica}@@, |
+ |
177 |
wat voor een universiteit van dergelijke grootte best opvallend te noemen is.\\ |
+ |
178 |
Het zou een mooie troef zijn voor de (master)opleiding als de UHasselt kan tonen |
+ |
179 |
dat ze genoeg vertrouwen hebben in hun eigen kunnen, en deze kennis ook inzetten |
+ |
180 |
voor het onderhoud van hun eigen informatica. Vertrouwen op een hoop externe |
+ |
181 |
bedrijven voor de interne IT doet dat vertrouwen niet uitstralen. |
+ |
182 |
|
+ |
183 |
Dit is evenwel niet zozeer een punt tΓ©gen Blackboard, maar wel een punt om te |
+ |
184 |
ijveren om met het ALIPA-project nu ook in te zetten op een goede oplossing van |
+ |
185 |
eigen makelij. |
+ |
186 |
*** Reden(en) tot stopzetting |
+ |
187 |
In de studentenraad is ter ore gekomen dat de integratie met Blackboard, ondanks |
+ |
188 |
bovenstaande punten, verder wordt gezet middels een app die zou integreren met Blackboard. |
+ |
189 |
|
+ |
190 |
Misschien is het beter om de samenwerking echter stop te zetten. Voor ALIPA zou |
+ |
191 |
het makkelijker zijn om de vernieuwing door te laten gaan als er controle is |
+ |
192 |
over zo'n cruciaal onderdeel van de universiteit. |
+ |
193 |
|
+ |
194 |
Met Joeni is er een voorstel dat laat zien hoe de functies die nu door |
+ |
195 |
Blackboard worden aangevoerd, geΓ―ntegreerd kunnen worden in een centrale |
+ |
196 |
oplossing voor de studenten. Het is niet zo moeilijk als op het eerste zicht zou |
+ |
197 |
lijken, en veegt direct alle gegeven problemen van de baan. |
+ |
198 |
docs/thesis/client-side-scripting.org ΒΆ
216 additions and 216 deletions.
View changes Hide changes
1 |
- | Ingewijden zijn bekend met het feit dat JavaScript een Turing-complete |
2 |
- | programmeertaal is; je kunt er dus daadwerkelijk programma's mee schrijven. |
3 |
- | Een prominent voorbeeld hiervan is Google met haar Google Docs, Sheets, |
4 |
- | Presentations, GMail, ... |
5 |
- | |
6 |
- | Het valt dan natuurlijk op dat binnen Joeni *geen enkele lijn JavaScript |
7 |
- | geschreven is*. En dat is ook expres gedaan. |
8 |
- | Dat klinkt misschien nogal contra-intuΓ―tief; een volledig programma, dat |
9 |
- | hoofdzakelijk gebruikt zal worden via de browser, dat client-side scripting |
10 |
- | expres aan zijn neus voorbij laat gaan. |
11 |
- | |
12 |
- | Hier zijn meerdere redenen voor. EΓ©n van de voornaamste redenen (en eentje die |
13 |
- | Google, Facebook, ... allemaal klaarblijkelijk vergeten zijn) is dat een |
14 |
- | grondregel van /web development/ is dat je er niet van mag uitgaan dat de |
15 |
- | gebruiker JavaScript ondersteunt. |
16 |
- | |
17 |
- | *Client-side scripting (Css* (niet te verwarren met Cascading Style Sheets, CSS)) |
18 |
- | *mag enkel een strikt cosmetisch effect hebben op |
19 |
- | een website.* De functionaliteit gaat namelijk compleet verloren als de |
20 |
- | gebruiker geen ondersteuning biedt. |
21 |
- | |
22 |
- | Alhoewel het in de praktijk steeds neerkomt op "JavaScript (JS) dient vermeden te |
23 |
- | worden op het web", ga ik enkel spreken over "Client side scripting" (Css), |
24 |
- | omdat veel van de problemen die zich met JS zouden voordoen, zich eveneens |
25 |
- | zouden voordoen bij eender welke andere taal (Python, Clojure, ...), |
26 |
- | als die voor Css gebruikt zou worden. JS is sinds [[http://es6-features.org/][ES6]] een betere taal geworden, |
27 |
- | maar de "kwaliteit" van een taal is volledig irrelevant in deze discussie. Het |
28 |
- | bespreken van de faciliteiten die JS als programmeertaal biedt wordt in dit |
29 |
- | hoofdstuk dus achterwege gelaten. |
30 |
- | |
31 |
- | Er wordt hier ook enkel gefocust op het gebruik van Css om bepaalde |
32 |
- | functionaliteit te laten werken. Css die enkel een cosmetisch effect heeft is |
33 |
- | niet het onderwerp van dit stuk, maar wordt eveneens vermeden om aan te tonen |
34 |
- | dat een bruikbare web-applicatie ook mooi kan zijn met enkel HTML en CSS. |
35 |
- | |
36 |
- | ** Verschillende versies |
37 |
- | Alles wat netwerkgerelateerd is, moet zich houden aan vooraf opgelegde |
38 |
- | standaarden om correct te kunnen communiceren, en met het WWW is dat niet |
39 |
- | anders. |
40 |
- | |
41 |
- | Dit geeft ook een reden om geen Css te gebruiken; op dit moment moet ik |
42 |
- | rekening houden met |
43 |
- | |
44 |
- | - De standaard van HTML(5) en welke tags ondersteund worden |
45 |
- | - De standaard van CSS(3) en de ondersteunde /properties/ binnen browsers |
46 |
- | |
47 |
- | Dit op zich is al een hele klus, en vereist *continu onderhoud van de software*. |
48 |
- | |
49 |
- | Stel dat men geen website ontwerpt, en /native software/ ontwikkelt, dan hoeft |
50 |
- | men enkel rekening te houden met de syntax van de programmeertaal; als het |
51 |
- | compileert kan het bij wijze van spreken gebruikt worden.[fn::In de praktijk is het niet zo voor de hand liggend, maar om het punt te maken volstaat dit.] |
52 |
- | |
53 |
- | Met Css moet men rekening houden met welke onderdelen van de gebruikte |
54 |
- | programmeertaal door de browsers wordt ondersteund, en dat is van vitaal belang, |
55 |
- | want als het script niet ondersteund wordt, wordt het simpelweg niet uitgevoerd, |
56 |
- | met als gevolg dat de website aan functionaliteit moet inboeten. |
57 |
- | |
58 |
- | Als dit bij HTML of CSS gebeurt (bv. gebruik van [[https://developer.mozilla.org/en-US/docs/Web/HTML/Element/marquee][<marquee>]]), dan kan de browser |
59 |
- | nog terugvallen op een standaardwaarde. Dit is ook mogelijk, omdat geen van |
60 |
- | beide een programmeertaal is; men kΓ‘n onderdelen vervangen zonder een al te |
61 |
- | groot risico te lopen om de site kapot te maken. |
62 |
- | |
63 |
- | Een goed voorbeeld hiervan is het ~<tel>~-element, dat wordt gebruikt om een |
64 |
- | telefoonnummer aan te duiden op een webpagina. Op mobiele browsers wordt een |
65 |
- | klik hierop behandeld als een telefoongesprek. Op (oudere) desktopbrowsers wordt |
66 |
- | dit als gewone tekst weergegeven. |
67 |
- | |
68 |
- | ** Turing-compleetheid |
69 |
- | De aantrekkingskracht van Css schuilt in de [[https://nl.wikipedia.org/wiki/Turingvolledigheid][Turing-compleetheid]]. Dit maakt het tot een |
70 |
- | programmeertaal waarin elk mogelijk computerprogramma geprogrammeerd kan worden. |
71 |
- | |
72 |
- | De grote mÑÑr in deze kracht, is dat dat ook een hoop verantwoordelijkheid met |
73 |
- | zich meebrengt. Er kunnen fouten in de code sluipen, die de hele website kunnen |
74 |
- | doen vastlopen. |
75 |
- | |
76 |
- | JavaScript heeft dan ook nog de ongelukkige eigenschap dat het een enorm |
77 |
- | [[https://en.wikipedia.org/wiki/Strong_and_weak_typing][zwak getypeerde programmeertaal]] is; de taal doet in de achtergrond stille |
78 |
- | conversies tussen verschillende types, en geeft liever foute resultaten terug |
79 |
- | dan de programmeur te vertellen dat er een fout in de code zit. |
80 |
- | |
81 |
- | Deze punten gelden natuurlijk ook voor de /server-side/, maar dit is (in |
82 |
- | tegenstelling tot Css) absoluut onvermijdelijk om een dergelijke website te |
83 |
- | creΓ«ren. |
84 |
- | Daarnaast zijn er ook een hoop voordelen die men niet heeft bij Css: |
85 |
- | |
86 |
- | - Vrije keuze van programmeertaal (en mogelijkheid om te linken met andere |
87 |
- | software) |
88 |
- | - Zekerheid dat, als de software werkt op de ene /client/, die ook voor de |
89 |
- | andere /client/ werkt (zie [[Verschillende versies]]) |
90 |
- | |
91 |
- | HTML en CSS zijn geen "volwaardige programmeertalen". HTML is een opmaaktaal, |
92 |
- | men beschrijft er dus mee hoe bepaalde onderdelen van de website moeten worden |
93 |
- | voorgesteld; als een hyperlink, een paragraaf, ... |
94 |
- | CSS laat toe om de stijl van deze opmaak te definiΓ«ren, hoe moet een hyperlink |
95 |
- | uitzien, ... |
96 |
- | |
97 |
- | Een fout hierin heeft hoogstens een esthetisch vervelend effect tot gevolg; veel |
98 |
- | browsers negeren fouten, en vervangen deze door /fallbacks/. Dit is niet |
99 |
- | mogelijk met een programmeertaal; een fout is een fout, en computers zijn niet |
100 |
- | in staat om een fout programma zelf te repareren. |
101 |
- | |
102 |
- | ** Onbeschikbaarheid |
103 |
- | Er zijn talloze manieren waarop de aangereikte code niet beschikbaar kan zijn |
104 |
- | voor de gebruiker, waardoor een website die afhangt van Css plots zonder |
105 |
- | waarschuwing niet meer werkzaam is. Een wilde greep uit de mogelijkheden: |
106 |
- | |
107 |
- | - De gebruiker heeft een zwakke computer |
108 |
- | - De computer heeft een slechte verbinding |
109 |
- | - De gebruiker surft via de GSM (een zwakke computer met een slechte verbinding) |
110 |
- | - De gebruiker heeft [[https://noscript.net][NoScript]], [[https://www.gnu.org/software/librejs/][GNU LibreJS]], of een andere extensie die Css blokkeert |
111 |
- | - De verbinding wordt onderbroken tijdens het inladen, en de pagina blokkeert |
112 |
- | terwijl het tevergeefs wacht op de rest van het script |
113 |
- | - De browser van de gebruiker ondersteunt simpelweg geen Css |
114 |
- | - De browser van de gebruiker ondersteunt niet de Css-implementatie die op de |
115 |
- | website gebruikt wordt (zie [[Verschillende versies]]) |
116 |
- | - De website laadt Css in van een externe website, maar er is een fout in het |
117 |
- | certificaat, en de browser weigert om de verbinding op te zetten |
118 |
- | - ... |
119 |
- | |
120 |
- | Er hoeft maar één (en slechts één) van deze mogelijkheden op te treden, en *de |
121 |
- | volledige website is per direct compleet onbruikbaar*. |
122 |
- | |
123 |
- | Voor elk van deze mogelijkheden zou met Css een controle moeten worden |
124 |
- | ingebouwd, en dan weer voor elke mogelijkheid een oplossing bedacht (want "Het |
125 |
- | werkt niet en dat is de schuld van de gebruiker" is geen oplossing). |
126 |
- | |
127 |
- | Daarentegen, wat als er server-side een fout optreedt? \\ |
128 |
- | Veel webframeworks hebben ingebouwde /debugging tools/ die bij fouten direct de |
129 |
- | programmeur wijzen op de fout. Django is hier een goed voorbeeld van. |
130 |
- | |
131 |
- | Daarnaast biedt de betere webserver ook ingebouwde oplossingen om vaak |
132 |
- | voorkomende fouten af te handelen (zoals een HTTP 404). In dat geval kan er |
133 |
- | gemakkelijk een e-mail naar de ontwikkelaar gestuurd worden, of kan een log |
134 |
- | aangemaakt worden. En dit is vaak allemaal /ingebouwd/. |
135 |
- | |
136 |
- | ** Uitgesteld resultaat |
137 |
- | Bestanden over het WWW worden quasi altijd verzonden via [[https://nl.wikipedia.org/wiki/Hypertext_Transfer_Protocol][HTTP]]([[https://nl.wikipedia.org/wiki/HyperText_Transfer_Protocol_Secure][S]]), en de browser |
138 |
- | is daarna verantwoordelijk voor het in elkaar steken van alle ontvangen |
139 |
- | onderdelen. |
140 |
- | |
141 |
- | Het handige hieraan, is dat elke browser zelf kan bepalen hoe, en in welke volgorde dit |
142 |
- | moet gebeuren, al dan niet in functie van bepaalde instellingen die de gebruiker |
143 |
- | zelf kan aanpassen (bv. geen afbeeldingen laden via 4G). |
144 |
- | |
145 |
- | Css interfereert op haast elk mogelijk niveau met deze werkwijze. Net omdat het |
146 |
- | niet op voorhand geweten is wat er zal worden aangepast, of wanneer de code |
147 |
- | ingeladen moet worden, is een browser verplicht om vanaf het eerste moment dat |
148 |
- | een script gedetecteerd wordt (bv. via de ~<script></script>~-tags), direct de |
149 |
- | code te evalueren en uit te voeren, ongeacht hoe lang het duurt of hoe zwaar het is. |
150 |
- | |
151 |
- | Css breekt ook met het gebruikelijke mantra dat de browser/gebruiker bepaalt hoe |
152 |
- | en wat wordt ingeladen. |
153 |
- | Vaak betekent dit ook dat de code geΓ«valueerd moet worden, op dat exacte moment, |
154 |
- | vooraleer de rest van de pagina getoond kan worden. \\ |
155 |
- | Dit is minder een probleem als Css gebruikt wordt voor het enige waarvoor het |
156 |
- | zou gebruikt moeten worden (cosmetische elementen), omdat praktisch alle code dan expres |
157 |
- | op het einde van het HTML-document kan worden ingeladen. De website is dan al |
158 |
- | bruikbaar vooraleer de code ingeladen moet worden. \\ |
159 |
- | Een groeiend aantal gebruikers blokkeert ook expres Css tijdens het surfen op |
160 |
- | het web, omdat de snelheidswinsten en sterk verhoogde privacy een waardige |
161 |
- | afweging is voor een ietwat minder cosmetisch aangeklede website. Met andere |
162 |
- | woorden; zij stellen het resultaat uit voor onbepaalde duur. |
163 |
- | |
164 |
- | Dit geeft vanzelfsprekend ook problemen als de code niet geoptimaliseerd is, en |
165 |
- | daar elke browser de aangereikte Css op een andere manier kan evalueren, is het |
166 |
- | onbegonnen werk om voor alle mogelijke implementaties handige optimalisaties |
167 |
- | door te voeren. Men beperkt zich natuurlijk meestal tot de populairste |
168 |
- | implementaties ([[https://en.wikipedia.org/wiki/WebKit][WebKit]] en [[https://en.wikipedia.org/wiki/Gecko_(software)][Gecko]]). |
169 |
- | |
170 |
- | _Maar je hoeft vanzelfsprekend niet te optimaliseren, als er geen code is om te optimaliseren._ |
171 |
- | |
172 |
- | Je zou kunnen zeggen dat deze redenering ook opgaat voor Joeni zelf, wat van |
173 |
- | Python gebruik maakt. Maar het gebruikte framework ondersteunt het |
174 |
- | [[https://docs.djangoproject.com/en/2.0/topics/cache/][cachen van pagina's]]. Dus eerder geΓ«valueerde code zal al op voorhand beschikbaar |
175 |
- | zijn. Daarbij komt dat de snelheid van een server naar wens kan worden vergroot, |
176 |
- | terwijl je bij de gebruiker er van moet uitgaan dat zijn/haar toestel traag is. |
177 |
- | De code van de server hoeft ook slechts voor één platform geoptimaliseerd te |
178 |
- | worden, dat van de server. |
179 |
- | |
180 |
- | Uiteindelijk is het resultaat van (foutief) Css-gebruik |
181 |
- | sowieso: *Een traag werkende website.* |
182 |
- | |
183 |
- | ** Verlies van betekenis |
184 |
- | Een bepaalde /tag/ in HTML draagt een bepaalde betekenis. ~<a />~ betekent dat dit |
185 |
- | een hyperlink is, ~<body />~ betekent dat wat volgt getoond moet worden als de |
186 |
- | 'inhoud' van de pagina, ~<p />~ duidt op een paragraaf, ... |
187 |
- | |
188 |
- | Deze betekenis wordt vaak door de browser ten volle benut; Alle links kunnen makkelijk |
189 |
- | op voorhand verzameld worden (i.e. Alles wat tussen ~<a />~ staat), wat tussen |
190 |
- | ~<head />~ staat wordt niet getoond, ... |
191 |
- | |
192 |
- | *Betekenis opent deuren voor het impliciet infereren van informatie.* Dit is de |
193 |
- | reden waarom de tags in HTML (en vooral sinds HTML5) een aanduiding zijn voor |
194 |
- | wat de ingesloten data /betekent/; ~<article />~ is een artikel en kan dus los |
195 |
- | weergegeven worden van de rest van de pagina, ~<del />~ is iets dat niet |
196 |
- | meer relevant is, maar waarschijnlijk toch wel weergegeven moet worden. ~<ol />~ |
197 |
- | is een geordende lijst, dus de volgorde van de data is van belang, in |
198 |
- | tegenstelling tot ~<ul />~. Er zijn ontelbare voorbeelden te vinden. |
199 |
- | |
200 |
- | Deze betekenis gaat volledig verloren als onderdelen van de website met Css |
201 |
- | worden "nagemaakt". ~<div onclick="hyperlink" />~ zal waarschijnlijk wel |
202 |
- | doorlinken naar een website, maar waar dat je in bv. FireFox met een |
203 |
- | middelmuisklik een ~<a />~ in een nieuw tabblad kunt openen, zal dit niet werken |
204 |
- | met Css. |
205 |
- | |
206 |
- | ** Conclusie |
207 |
- | Het moge duidelijk zijn dat het gebruik van Css om zogenaamde /web apps/ te |
208 |
- | maken, fundamenteel een slecht idee is, dat meer problemen voortbrengt dan het |
209 |
- | oplost. Alle problemen die sommige websites proberen op te lossen met Css, zijn |
210 |
- | makkelijker op te lossen met slechts HTML en CSS (Cascading Style Sheets), en |
211 |
- | Client side scripting maakt soms de problemen zelfs erger. |
212 |
- | |
213 |
- | En zelfs al zouden alle bovenstaande punten onwaar zijn, dan nog is Joeni |
214 |
- | het bewijs dat Css geen vereiste is om werkende software te schrijven, die |
215 |
- | hoofdzakelijk via het WWW beschikbaar wordt gesteld. |
216 |
- | |
+ |
1 |
Ingewijden zijn bekend met het feit dat JavaScript een Turing-complete |
+ |
2 |
programmeertaal is; je kunt er dus daadwerkelijk programma's mee schrijven. |
+ |
3 |
Een prominent voorbeeld hiervan is Google met haar Google Docs, Sheets, |
+ |
4 |
Presentations, GMail, ... |
+ |
5 |
|
+ |
6 |
Het valt dan natuurlijk op dat binnen Joeni *geen enkele lijn JavaScript |
+ |
7 |
geschreven is*. En dat is ook expres gedaan. |
+ |
8 |
Dat klinkt misschien nogal contra-intuΓ―tief; een volledig programma, dat |
+ |
9 |
hoofdzakelijk gebruikt zal worden via de browser, dat client-side scripting |
+ |
10 |
expres aan zijn neus voorbij laat gaan. |
+ |
11 |
|
+ |
12 |
Hier zijn meerdere redenen voor. EΓ©n van de voornaamste redenen (en eentje die |
+ |
13 |
Google, Facebook, ... allemaal klaarblijkelijk vergeten zijn) is dat een |
+ |
14 |
grondregel van /web development/ is dat je er niet van mag uitgaan dat de |
+ |
15 |
gebruiker JavaScript ondersteunt. |
+ |
16 |
|
+ |
17 |
*Client-side scripting (Css* (niet te verwarren met Cascading Style Sheets, CSS)) |
+ |
18 |
*mag enkel een strikt cosmetisch effect hebben op |
+ |
19 |
een website.* De functionaliteit gaat namelijk compleet verloren als de |
+ |
20 |
gebruiker geen ondersteuning biedt. |
+ |
21 |
|
+ |
22 |
Alhoewel het in de praktijk steeds neerkomt op "JavaScript (JS) dient vermeden te |
+ |
23 |
worden op het web", ga ik enkel spreken over "Client side scripting" (Css), |
+ |
24 |
omdat veel van de problemen die zich met JS zouden voordoen, zich eveneens |
+ |
25 |
zouden voordoen bij eender welke andere taal (Python, Clojure, ...), |
+ |
26 |
als die voor Css gebruikt zou worden. JS is sinds [[http://es6-features.org/][ES6]] een betere taal geworden, |
+ |
27 |
maar de "kwaliteit" van een taal is volledig irrelevant in deze discussie. Het |
+ |
28 |
bespreken van de faciliteiten die JS als programmeertaal biedt wordt in dit |
+ |
29 |
hoofdstuk dus achterwege gelaten. |
+ |
30 |
|
+ |
31 |
Er wordt hier ook enkel gefocust op het gebruik van Css om bepaalde |
+ |
32 |
functionaliteit te laten werken. Css die enkel een cosmetisch effect heeft is |
+ |
33 |
niet het onderwerp van dit stuk, maar wordt eveneens vermeden om aan te tonen |
+ |
34 |
dat een bruikbare web-applicatie ook mooi kan zijn met enkel HTML en CSS. |
+ |
35 |
|
+ |
36 |
*** Verschillende versies |
+ |
37 |
Alles wat netwerkgerelateerd is, moet zich houden aan vooraf opgelegde |
+ |
38 |
standaarden om correct te kunnen communiceren, en met het WWW is dat niet |
+ |
39 |
anders. |
+ |
40 |
|
+ |
41 |
Dit geeft ook een reden om geen Css te gebruiken; op dit moment moet ik |
+ |
42 |
rekening houden met |
+ |
43 |
|
+ |
44 |
- De standaard van HTML(5) en welke tags ondersteund worden |
+ |
45 |
- De standaard van CSS(3) en de ondersteunde /properties/ binnen browsers |
+ |
46 |
|
+ |
47 |
Dit op zich is al een hele klus, en vereist *continu onderhoud van de software*. |
+ |
48 |
|
+ |
49 |
Stel dat men geen website ontwerpt, en /native software/ ontwikkelt, dan hoeft |
+ |
50 |
men enkel rekening te houden met de syntax van de programmeertaal; als het |
+ |
51 |
compileert kan het bij wijze van spreken gebruikt worden.[fn::In de praktijk is het niet zo voor de hand liggend, maar om het punt te maken volstaat dit.] |
+ |
52 |
|
+ |
53 |
Met Css moet men rekening houden met welke onderdelen van de gebruikte |
+ |
54 |
programmeertaal door de browsers wordt ondersteund, en dat is van vitaal belang, |
+ |
55 |
want als het script niet ondersteund wordt, wordt het simpelweg niet uitgevoerd, |
+ |
56 |
met als gevolg dat de website aan functionaliteit moet inboeten. |
+ |
57 |
|
+ |
58 |
Als dit bij HTML of CSS gebeurt (bv. gebruik van [[https://developer.mozilla.org/en-US/docs/Web/HTML/Element/marquee][<marquee>]]), dan kan de browser |
+ |
59 |
nog terugvallen op een standaardwaarde. Dit is ook mogelijk, omdat geen van |
+ |
60 |
beide een programmeertaal is; men kΓ‘n onderdelen vervangen zonder een al te |
+ |
61 |
groot risico te lopen om de site kapot te maken. |
+ |
62 |
|
+ |
63 |
Een goed voorbeeld hiervan is het ~<tel>~-element, dat wordt gebruikt om een |
+ |
64 |
telefoonnummer aan te duiden op een webpagina. Op mobiele browsers wordt een |
+ |
65 |
klik hierop behandeld als een telefoongesprek. Op (oudere) desktopbrowsers wordt |
+ |
66 |
dit als gewone tekst weergegeven. |
+ |
67 |
|
+ |
68 |
*** Turing-compleetheid |
+ |
69 |
De aantrekkingskracht van Css schuilt in de [[https://nl.wikipedia.org/wiki/Turingvolledigheid][Turing-compleetheid]]. Dit maakt het tot een |
+ |
70 |
programmeertaal waarin elk mogelijk computerprogramma geprogrammeerd kan worden. |
+ |
71 |
|
+ |
72 |
De grote mÑÑr in deze kracht, is dat dat ook een hoop verantwoordelijkheid met |
+ |
73 |
zich meebrengt. Er kunnen fouten in de code sluipen, die de hele website kunnen |
+ |
74 |
doen vastlopen. |
+ |
75 |
|
+ |
76 |
JavaScript heeft dan ook nog de ongelukkige eigenschap dat het een enorm |
+ |
77 |
[[https://en.wikipedia.org/wiki/Strong_and_weak_typing][zwak getypeerde programmeertaal]] is; de taal doet in de achtergrond stille |
+ |
78 |
conversies tussen verschillende types, en geeft liever foute resultaten terug |
+ |
79 |
dan de programmeur te vertellen dat er een fout in de code zit. |
+ |
80 |
|
+ |
81 |
Deze punten gelden natuurlijk ook voor de /server-side/, maar dit is (in |
+ |
82 |
tegenstelling tot Css) absoluut onvermijdelijk om een dergelijke website te |
+ |
83 |
creΓ«ren. |
+ |
84 |
Daarnaast zijn er ook een hoop voordelen die men niet heeft bij Css: |
+ |
85 |
|
+ |
86 |
- Vrije keuze van programmeertaal (en mogelijkheid om te linken met andere |
+ |
87 |
software) |
+ |
88 |
- Zekerheid dat, als de software werkt op de ene /client/, die ook voor de |
+ |
89 |
andere /client/ werkt (zie [[Verschillende versies][Verschillende versies]]). |
+ |
90 |
|
+ |
91 |
HTML en CSS zijn geen "volwaardige programmeertalen". HTML is een opmaaktaal, |
+ |
92 |
men beschrijft er dus mee hoe bepaalde onderdelen van de website moeten worden |
+ |
93 |
voorgesteld; als een hyperlink, een paragraaf, ... |
+ |
94 |
CSS laat toe om de stijl van deze opmaak te definiΓ«ren, hoe moet een hyperlink |
+ |
95 |
uitzien, ... |
+ |
96 |
|
+ |
97 |
Een fout hierin heeft hoogstens een esthetisch vervelend effect tot gevolg; veel |
+ |
98 |
browsers negeren fouten, en vervangen deze door /fallbacks/. Dit is niet |
+ |
99 |
mogelijk met een programmeertaal; een fout is een fout, en computers zijn niet |
+ |
100 |
in staat om een fout programma zelf te repareren. |
+ |
101 |
|
+ |
102 |
*** Onbeschikbaarheid |
+ |
103 |
Er zijn talloze manieren waarop de aangereikte code niet beschikbaar kan zijn |
+ |
104 |
voor de gebruiker, waardoor een website die afhangt van Css plots zonder |
+ |
105 |
waarschuwing niet meer werkzaam is. Een wilde greep uit de mogelijkheden: |
+ |
106 |
|
+ |
107 |
- De gebruiker heeft een zwakke computer |
+ |
108 |
- De computer heeft een slechte verbinding |
+ |
109 |
- De gebruiker surft via de GSM (een zwakke computer met een slechte verbinding) |
+ |
110 |
- De gebruiker heeft [[https://noscript.net][NoScript]], [[https://www.gnu.org/software/librejs/][GNU LibreJS,]] of een andere extensie die Css blokkeert |
+ |
111 |
- De verbinding wordt onderbroken tijdens het inladen, en de pagina blokkeert |
+ |
112 |
terwijl het tevergeefs wacht op de rest van het script |
+ |
113 |
- De browser van de gebruiker ondersteunt simpelweg geen Css |
+ |
114 |
- De browser van de gebruiker ondersteunt niet de Css-implementatie die op de |
+ |
115 |
website gebruikt wordt (zie [[Verschillende versies]]) |
+ |
116 |
- De website laadt Css in van een externe website, maar er is een fout in het |
+ |
117 |
certificaat, en de browser weigert om de verbinding op te zetten |
+ |
118 |
- ... |
+ |
119 |
|
+ |
120 |
Er hoeft maar één (en slechts één) van deze mogelijkheden op te treden, en *de |
+ |
121 |
volledige website is per direct compleet onbruikbaar*. |
+ |
122 |
|
+ |
123 |
Voor elk van deze mogelijkheden zou met Css een controle moeten worden |
+ |
124 |
ingebouwd, en dan weer voor elke mogelijkheid een oplossing bedacht (want "Het |
+ |
125 |
werkt niet en dat is de schuld van de gebruiker" is geen oplossing). |
+ |
126 |
|
+ |
127 |
Daarentegen, wat als er server-side een fout optreedt? \\ |
+ |
128 |
Veel webframeworks hebben ingebouwde /debugging tools/ die bij fouten direct de |
+ |
129 |
programmeur wijzen op de fout. Django is hier een goed voorbeeld van. |
+ |
130 |
|
+ |
131 |
Daarnaast biedt de betere webserver ook ingebouwde oplossingen om vaak |
+ |
132 |
voorkomende fouten af te handelen (zoals een HTTP 404). In dat geval kan er |
+ |
133 |
gemakkelijk een e-mail naar de ontwikkelaar gestuurd worden, of kan een log |
+ |
134 |
aangemaakt worden. En dit is vaak allemaal /ingebouwd/. |
+ |
135 |
|
+ |
136 |
*** Uitgesteld resultaat |
+ |
137 |
Bestanden over het WWW worden quasi altijd verzonden via [[https://nl.wikipedia.org/wiki/Hypertext_Transfer_Protocol][HTTP]]([[https://nl.wikipedia.org/wiki/HyperText_Transfer_Protocol_Secure][S]]), en de browser |
+ |
138 |
is daarna verantwoordelijk voor het in elkaar steken van alle ontvangen |
+ |
139 |
onderdelen. |
+ |
140 |
|
+ |
141 |
Het handige hieraan, is dat elke browser zelf kan bepalen hoe, en in welke volgorde dit |
+ |
142 |
moet gebeuren, al dan niet in functie van bepaalde instellingen die de gebruiker |
+ |
143 |
zelf kan aanpassen (bv. geen afbeeldingen laden via 4G). |
+ |
144 |
|
+ |
145 |
Css interfereert op haast elk mogelijk niveau met deze werkwijze. Net omdat het |
+ |
146 |
niet op voorhand geweten is wat er zal worden aangepast, of wanneer de code |
+ |
147 |
ingeladen moet worden, is een browser verplicht om vanaf het eerste moment dat |
+ |
148 |
een script gedetecteerd wordt (bv. via de ~<script></script>~-tags), direct de |
+ |
149 |
code te evalueren en uit te voeren, ongeacht hoe lang het duurt of hoe zwaar het is. |
+ |
150 |
|
+ |
151 |
Css breekt ook met het gebruikelijke mantra dat de browser/gebruiker bepaalt hoe |
+ |
152 |
en wat wordt ingeladen. |
+ |
153 |
Vaak betekent dit ook dat de code geΓ«valueerd moet worden, op dat exacte moment, |
+ |
154 |
vooraleer de rest van de pagina getoond kan worden. \\ |
+ |
155 |
Dit is minder een probleem als Css gebruikt wordt voor het enige waarvoor het |
+ |
156 |
zou gebruikt moeten worden (cosmetische elementen), omdat praktisch alle code dan expres |
+ |
157 |
op het einde van het HTML-document kan worden ingeladen. De website is dan al |
+ |
158 |
bruikbaar vooraleer de code ingeladen moet worden. \\ |
+ |
159 |
Een groeiend aantal gebruikers blokkeert ook expres Css tijdens het surfen op |
+ |
160 |
het web, omdat de snelheidswinsten en sterk verhoogde privacy een waardige |
+ |
161 |
afweging is voor een ietwat minder cosmetisch aangeklede website. Met andere |
+ |
162 |
woorden; zij stellen het resultaat uit voor onbepaalde duur. |
+ |
163 |
|
+ |
164 |
Dit geeft vanzelfsprekend ook problemen als de code niet geoptimaliseerd is, en |
+ |
165 |
daar elke browser de aangereikte Css op een andere manier kan evalueren, is het |
+ |
166 |
onbegonnen werk om voor alle mogelijke implementaties handige optimalisaties |
+ |
167 |
door te voeren. Men beperkt zich natuurlijk meestal tot de populairste |
+ |
168 |
implementaties ([[https://en.wikipedia.org/wiki/WebKit][WebKit]] en [[https://en.wikipedia.org/wiki/Gecko_(software)][Gecko]]). |
+ |
169 |
|
+ |
170 |
_Maar je hoeft vanzelfsprekend niet te optimaliseren, als er geen code is om te optimaliseren._ |
+ |
171 |
|
+ |
172 |
Je zou kunnen zeggen dat deze redenering ook opgaat voor Joeni zelf, wat van |
+ |
173 |
Python gebruik maakt. Maar het gebruikte framework ondersteunt het |
+ |
174 |
[[https://docs.djangoproject.com/en/2.0/topics/cache/][cachen van pagina's]]. Dus eerder geΓ«valueerde code zal al op voorhand beschikbaar |
+ |
175 |
zijn. Daarbij komt dat de snelheid van een server naar wens kan worden vergroot, |
+ |
176 |
terwijl je bij de gebruiker er van moet uitgaan dat zijn/haar toestel traag is. |
+ |
177 |
De code van de server hoeft ook slechts voor één platform geoptimaliseerd te |
+ |
178 |
worden, dat van de server. |
+ |
179 |
|
+ |
180 |
Uiteindelijk is het resultaat van (foutief) Css-gebruik |
+ |
181 |
sowieso: *Een traag werkende website.* |
+ |
182 |
|
+ |
183 |
*** Verlies van betekenis |
+ |
184 |
Een bepaalde /tag/ in HTML draagt een bepaalde betekenis. ~<a />~ betekent dat dit |
+ |
185 |
een hyperlink is, ~<body />~ betekent dat wat volgt getoond moet worden als de |
+ |
186 |
'inhoud' van de pagina, ~<p />~ duidt op een paragraaf, ... |
+ |
187 |
|
+ |
188 |
Deze betekenis wordt vaak door de browser ten volle benut; Alle links kunnen makkelijk |
+ |
189 |
op voorhand verzameld worden (i.e. Alles wat tussen ~<a />~ staat), wat tussen |
+ |
190 |
~<head />~ staat wordt niet getoond, ... |
+ |
191 |
|
+ |
192 |
*Betekenis opent deuren voor het impliciet infereren van informatie.* Dit is de |
+ |
193 |
reden waarom de tags in HTML (en vooral sinds HTML5) een aanduiding zijn voor |
+ |
194 |
wat de ingesloten data /betekent/; ~<article />~ is een artikel en kan dus los |
+ |
195 |
weergegeven worden van de rest van de pagina, ~<del />~ is iets dat niet |
+ |
196 |
meer relevant is, maar waarschijnlijk toch wel weergegeven moet worden. ~<ol />~ |
+ |
197 |
is een geordende lijst, dus de volgorde van de data is van belang, in |
+ |
198 |
tegenstelling tot ~<ul />~. Er zijn ontelbare voorbeelden te vinden. |
+ |
199 |
|
+ |
200 |
Deze betekenis gaat volledig verloren als onderdelen van de website met Css |
+ |
201 |
worden "nagemaakt". ~<div onclick="hyperlink" />~ zal waarschijnlijk wel |
+ |
202 |
doorlinken naar een website, maar waar dat je in bv. FireFox met een |
+ |
203 |
middelmuisklik een ~<a />~ in een nieuw tabblad kunt openen, zal dit niet werken |
+ |
204 |
met Css. |
+ |
205 |
|
+ |
206 |
*** Conclusie |
+ |
207 |
Het moge duidelijk zijn dat het gebruik van Css om zogenaamde /web apps/ te |
+ |
208 |
maken, fundamenteel een slecht idee is, dat meer problemen voortbrengt dan het |
+ |
209 |
oplost. Alle problemen die sommige websites proberen op te lossen met Css, zijn |
+ |
210 |
makkelijker op te lossen met slechts HTML en CSS (Cascading Style Sheets), en |
+ |
211 |
Client side scripting maakt soms de problemen zelfs erger. |
+ |
212 |
|
+ |
213 |
En zelfs al zouden alle bovenstaande punten onwaar zijn, dan nog is Joeni |
+ |
214 |
het bewijs dat Css geen vereiste is om werkende software te schrijven, die |
+ |
215 |
hoofdzakelijk via het WWW beschikbaar wordt gesteld. |
+ |
216 |
docs/thesis/info-processen.org ΒΆ
15 additions and 0 deletions.
View changes Hide changes
+ |
1 |
Een ander prominent deel van deze bachelorproef gaat over het verbeteren van |
+ |
2 |
bestaande informatieprocessen. |
+ |
3 |
|
+ |
4 |
*** Reservatie lokalen |
+ |
5 |
|
+ |
6 |
|
+ |
7 |
*** COMMENT Studiegids |
+ |
8 |
Op dit moment wordt de studiegids manueel opgebouwd, waarbij |
+ |
9 |
docenten/hoogleraren moeten indienen welke voorkennis vereist is, hoe het vak |
+ |
10 |
gequoteerd wordt, of er een tweede kans is, ... |
+ |
11 |
|
+ |
12 |
Dit moet ook worden goedgekeurd, waardoor wijzigingen een nogal omslachtige |
+ |
13 |
procedure volgen. Daarbij lijken de pagina's in de studiegids nogal een andere |
+ |
14 |
stijl te gebruiken dan de omvattende pagina. |
+ |
15 |
docs/thesis/inplannen.org ΒΆ
1 addition and 1 deletion.
View changes Hide changes
1 |
1 |
Naast het reserveren van lokalen, is er ook het werk van inplannen van de uren |
2 |
2 |
van de vakken zelf. |
3 |
3 |
|
4 |
4 |
De manieren verschillen voornamelijk per faculteit. Het volledige verslag is te vinden in |
5 |
5 |
[[APPENDIX A - ...]]. |
6 |
- | |
+ |
6 |
|
7 |
7 |
De manier van inplannen verschilt bij de richting Informatica enigzins van die |
8 |
8 |
van de andere richtingen binnen de faculteit Wetenschappen: Vanaf het derde |
9 |
9 |
bachelorjaar worden er enkel nog hoorcolleges meer ingepland. |
10 |
10 |
|
11 |
11 |
De oorzaak hiervan is het grote aantal specialisaties die de masteropleiding |
12 |
12 |
heeft. (De andere richtingen hebben enkel een bachelorgedeelte) Voor deze vakken |
13 |
13 |
meer dan enkel de hoorcolleges inplannen is onmogelijk, omdat anders er |
14 |
14 |
overlappingen onstaan binnen modeltrajecten. |
15 |
15 |
|
16 |
16 |
*** Professoren |
17 |
17 |
De agenda's van de professoren worden naar voren geschoven als het primaire probleem tijdens |
18 |
18 |
het opstellen van een planning: Ze zijn druk bezet, en hun afspraken zijn |
19 |
19 |
moeilijk te verplaatsen.\\ |
20 |
20 |
Om hieraan tegemoet te komen, wordt vaak de planning van het vorige jaar als een |
21 |
21 |
sjabloon genomen. Meestal komt de planning nog voldoende overeen met de vorige |
22 |
22 |
versie (zeker als er geen modeltrajectwijzigingen plaatsvonden). |
23 |
23 |
|
24 |
24 |
*** Sjablonen |
25 |
25 |
Om het inplannen zo makkelijk mogelijk te laten verlopen, wordt er steeds |
26 |
26 |
vertrokken van de planning van het vorige academiejaar als sjabloon. |
27 |
27 |
Als er geen veranderingen zijn, dan worden er geen wijzigingen aangebracht. |
28 |
28 |
|
29 |
29 |
Indien er toch aanpassingen moeten gebeuren, dan wordt er een voorstel |
30 |
30 |
uitgewerkt voor alle wijzigingen, dat dan wordt verstuurd naar alle mensen die |
31 |
31 |
hier invloed van zullen ondervinden. |
32 |
32 |
docs/thesis/lokaalreservaties.org ΒΆ
3 additions and 3 deletions.
View changes Hide changes
1 |
1 |
Het inplannen van de lokalen op de UHasselt is een complexe opdracht. In het |
2 |
2 |
onderzoek is naar voren gekomen dat deze opdracht onnodig ingewikkelder wordt |
3 |
3 |
gemaakt. |
4 |
4 |
|
5 |
5 |
*** De huidige software |
6 |
6 |
Het huidige programma blijkt een overblijfsel te zijn van de Economische |
7 |
7 |
Hogeschool. Sindsdien zijn er geen aanpassingen meer gebeurd, en volgens het |
8 |
8 |
personeel dat ermee werkt, is dat zeer merkbaar. |
9 |
9 |
|
10 |
10 |
De broncode is volgens <PERSOON> geschreven in Delphi, maar ik heb twijfels |
11 |
- | hierbij, want dit strookt niet direct met het feit dat dit programma nog van de |
+ |
11 |
hierbij, want dit strookt niet direct met het feit dat dit programma nog van de |
12 |
12 |
EHL komt.[fn:chronology] Ik vermoed dat Turbo Pascal gebruikt werd, dit zou dan |
13 |
13 |
ook verklaren waarom de software op een aparte computer draait. |
14 |
14 |
|
15 |
15 |
[fn:chronology] De Economische Hogeschool ging op in het Limburgs Universitair |
16 |
16 |
Centrum eind jaren 80, maar Delphi kwam pas uit in 1995. Misschien zijn er later |
17 |
17 |
nog wijzigingen gebeurd, maar dat is niet zeker. |
18 |
18 |
|
19 |
19 |
Het programma vereist ook dat het op een aparte computer wordt gedraaid. Ook dit |
20 |
20 |
sterkt het vermoeden dat het programma in Turbo Pascal geschreven werd, daar |
21 |
21 |
deze wel werkt op MS-DOS. |
22 |
22 |
|
23 |
23 |
Een ander groot probleem is dat het programma gewoon te traag is. Bij te veel |
24 |
24 |
aanpassingen wordt het onwerkbaar traag, en regelmatig crasht het gewoon. |
25 |
25 |
|
26 |
26 |
Daarbovenop is de functionaliteit behoorlijk beperkt; alhoewel het wel mogelijk |
27 |
27 |
is om rekenbladen of foto's uit het programma op te vragen, is simpele tekst |
28 |
28 |
niet mogelijk. |
29 |
29 |
|
30 |
30 |
**** Toekomst van het programma |
31 |
31 |
Ik vermoed dat de huidige software niet meer bruikbaar is; alhoewel een |
32 |
32 |
programma onderhouden vaak een betere keuze is dan het volledig opnieuw |
33 |
33 |
schrijven, is het probleem dat dat onderhoud /al twintig jaar uitgesteld is/. |
34 |
34 |
Voor de gebruikte programmeertaal ervaren programmeurs vinden is op zich al een |
35 |
35 |
opdracht, en het integreert nu al niet meer met recente besturingssystemen. Mijn |
36 |
36 |
inziens lijkt het beter dat er wordt uitgekeken naar een andere oplossing. Deze |
37 |
37 |
opmerking is strijdig met die van de gebruikers van het programma zelf; zij |
38 |
38 |
hebben de wens geuit dat het programma toch wordt gerepareerd, voornamelijk |
39 |
39 |
omdat ze dit programma kennen. Misschien dat begeleiding met een nieuw programma |
40 |
40 |
de overgang naar een eventuele vervanging draagelijker kan maken. |
41 |
41 |
|
42 |
42 |
**** Alternatieven |
43 |
43 |
Dit probleem is niet nieuw; er is al door het personeel zelf gezocht naar |
44 |
44 |
mogelijke alternatieve software. Twee voorstellen kwamen prominent naar boven. |
45 |
45 |
|
46 |
46 |
Het eerste voorstel is *Porto*, met de Universidade do Porto als toepasselijke |
47 |
47 |
origine. Dit werd zelfs proactief aangevoerd door de ontwikkelaars zelf, |
48 |
48 |
inclusief een bijbehorend onderhoudscontract voor twee jaar. De prijs bedroeg |
49 |
49 |
echter β¬10000, en dat was te duur. |
50 |
50 |
|
51 |
51 |
Het tweede is een combinatie van twee gekoppelde systemen, *Syllabus + |
52 |
52 |
Enterprise/Classic*. In tegenstelling tot Porto wordt dit programma al gebruikt |
53 |
53 |
op Belgische bodem door de UCLL en KUL. Het bezit veel van de benodigde |
54 |
54 |
functies, maar de werking viel niet in goede aarde, alhoewel het personeel zelf |
55 |
55 |
vermoedt dat dit een kwestie van smaak is. |
56 |
56 |
|
57 |
57 |
*** Onthouden |
58 |
58 |
Een ander groot probleem met lokalen inplannen is dat veel informatie uit het |
59 |
59 |
hoofd onthouden moet worden. Dit is dan info zoals het aantal zitplaatsen in |
60 |
60 |
lokalen, de software die op de computers geΓ―nstalleerd staat, ... Deze info kan |
61 |
61 |
gemakkelijk met de computer onthouden worden, maar dit gebeurd gewoon niet. Dit |
62 |
62 |
geeft dan ook grote problemen als een personeelslid ziek wordt en tijdelijk |
63 |
63 |
wegvalt; eventuele vervanging heeft simpelweg geen toegang tot belangrijke info. |
64 |
64 |
|
65 |
65 |
*** Manuele processen |
66 |
66 |
Veel zaken die praktisch gezien makkelijk geautomatiseerd kunnen worden, |
67 |
67 |
vereisen nog steeds veel menselijke interventie. Een externe reservering loopt |
68 |
68 |
via de Dienst Communicatie, waarbij vooral e-mails gebruikt worden om te |
69 |
69 |
communiceren met andere personeelsleden. Een gelijkaardig proces geldt voor |
70 |
70 |
wijzigingen van de docenten uit; zij contacteren het personeel rechtstreeks, |
71 |
71 |
maar ook via e-mail. |
72 |
72 |
|
73 |
73 |
Deze processen zijn voor verbetering vatbaar, en voorstellen worden aangevoerd |
74 |
74 |
in <DEEL III - NOG INVULLEN>. |
75 |
- | |
+ |
75 |
|
76 |
76 |
*** In het kort |
77 |
77 |
|
78 |
78 |
Het is duidelijk dat de manier van hoe lokalen gereserveerd worden toe is aan |
79 |
79 |
een grondige verbetering. Niet alleen is de ruggengraat van het proces toe aan |
80 |
80 |
een vervanging (of op z'n minst een grondige revisie), er moet gewerkt worden |
81 |
81 |
aan manieren om tijdrovend werk om te zetten in geautomatiseerde processen, om |
82 |
82 |
de kostbare tijd van het personeel effectiever in te zetten. |
83 |
83 |
|
84 |
84 |
Het volledige rapport is te vinden in [[AppendixA][Appendix A]]. |
85 |
- | |
+ |
85 |
docs/thesis/master.org ΒΆ
24 additions and 2 deletions.
View changes Hide changes
1 |
1 |
#+language: nl |
2 |
2 |
#+latex_class: report |
3 |
3 |
#+latex_class_options: [a4paper] |
4 |
4 |
#+latex_header: \usepackage{pdfpages} |
5 |
5 |
#+latex_header: \usepackage{biblatex} |
6 |
6 |
#+latex_header: \bibliography{sources} |
7 |
7 |
#+latex_header: \usepackage[dutch]{babel} |
8 |
8 |
#+OPTIONS: toc:nil |
9 |
9 |
#+OPTIONS: H:6 |
10 |
10 |
#+author: Maarten Vangeneugden @@latex:\\@@ prof. dr. Wim Lamotte |
11 |
11 |
#+date: 2017-2018 |
12 |
12 |
#+title: Joeni |
13 |
13 |
#+subtitle: Bachelorproef voorgedragen tot het behalen van de graad van bachelor in de informatica |
14 |
14 |
#+TOC: headlines 6 |
15 |
15 |
|
16 |
16 |
#+INCLUDE: "./voorwoord.org" |
17 |
17 |
|
18 |
18 |
* Onderzoek |
19 |
19 |
#+INCLUDE: "./uurrooster.org" |
20 |
- | #+INCLUDE: "./lokaalreservaties.org" |
+ |
20 |
#+INCLUDE: "./lokaalreservaties.org" |
21 |
21 |
#+INCLUDE: "./examens.org" |
22 |
22 |
#+INCLUDE: "./inplannen.org" |
23 |
23 |
|
+ |
24 |
|
24 |
25 |
* Joeni |
25 |
26 |
#+INCLUDE: "./softwarekeuzes.org" |
26 |
27 |
|
+ |
28 |
#+INCLUDE: "./client-side-scripting.org" |
+ |
29 |
#+INCLUDE: "./courses.joeni.org" |
+ |
30 |
#+INCLUDE: "./curriculum.joeni.org" |
+ |
31 |
#+INCLUDE: "./databank.joeni.org" |
+ |
32 |
#+INCLUDE: "./dienstmededelingen.org" |
+ |
33 |
#+INCLUDE: "./instellingen.joeni.org" |
+ |
34 |
#+INCLUDE: "./lokalen.joeni.org" |
+ |
35 |
#+INCLUDE: "./mededelingen.joeni.org" |
+ |
36 |
#+BEGIN_COMMENT |
+ |
37 |
#+INCLUDE: "./postgres.org" |
+ |
38 |
#+END_COMMENT |
+ |
39 |
#+INCLUDE: "./rooster.joeni.org" |
+ |
40 |
#+INCLUDE: "./verbeteringspunten_joeni.org" |
+ |
41 |
|
27 |
42 |
* Voorstellen voor informatieprocessen |
28 |
- | |
+ |
43 |
|
+ |
44 |
* Informatieprocessen en algemene verbeteringen |
+ |
45 |
|
29 |
46 |
#+INCLUDE: "./aandachtspunten.org" |
30 |
47 |
|
+ |
48 |
#+INCLUDE: "./huisstijl.org" |
+ |
49 |
#+INCLUDE: "./implementatie_uhasselt.org" |
+ |
50 |
#+INCLUDE: "./toekomst.org" |
+ |
51 |
|
31 |
52 |
* Dankwoord |
32 |
53 |
#+INCLUDE: "./dankwoord.org" |
33 |
54 |
|
34 |
55 |
|
35 |
56 |
|
36 |
57 |
|
37 |
58 |
|
38 |
59 |
|
39 |
60 |
|
40 |
61 |
|
41 |
62 |
|
42 |
63 |
|
43 |
64 |
|
44 |
65 |
|
45 |
66 |
|
46 |
67 |
|
47 |
68 |
|
48 |
69 |
@@latex:\printbibliography@@ |
49 |
70 |
* Appendices |
50 |
71 |
|
+ |
72 |
|
51 |
73 |
|
52 |
74 |
* COMMENT Structuur |
53 |
75 |
- Titelblad |
54 |
76 |
- Inhoudsopgave |
55 |
77 |
- Voorwoord/Inleidende tekst |
56 |
78 |
- Hoofdstuk 1 - Onderzoek |
57 |
79 |
- Hoofdstuk 2 - Beschrijving Joeni |
58 |
80 |
- Hoofdstuk 3 - Voorstellen verbetering UHasselt / Bedachte processen |
59 |
81 |
- Dankwoord |
60 |
82 |
- Bibliografie |
61 |
83 |
- Appendices |
62 |
84 |
docs/thesis/postgres.org ΒΆ
1 addition and 1 deletion.
View changes Hide changes
1 |
1 |
De praktische uitwerking van het project maakt gebruik van de |
2 |
2 |
PostreSQL-databanktechnologie. Bij deze databank is onderzoek verricht naar de |
3 |
3 |
mogelijkheden die het biedt. |
4 |
4 |
** Integriteit van data |
5 |
5 |
Het is vitaal om zoveel mogelijk data te laten valideren door de databank zelf, |
6 |
6 |
of minstens via een soort "validatielaag" rondom de databank. Deze validatielaag |
7 |
7 |
is dan verantwoordelijk om alle aangebrachte data op correctheid te controleren. |
8 |
8 |
Voorbeelden van te controleren data zijn dan: |
9 |
9 |
- IBAN- en BIC-codes van studenten en personeelsleden die kloppen |
10 |
10 |
- Rijksregisternummers die kloppen |
11 |
11 |
- Geen mogelijkheid om lokalen te reserveren die onreserveerbaar zijn |
12 |
12 |
- Geen conflicterende reservaties van bepaalde lokalen |
13 |
13 |
- ... |
14 |
14 |
Diezelfde validatielaag geeft dan aan alle data *zekerheid van correctheid* mee: |
15 |
15 |
Als alle ingevoerde data valide is, dan zal bij logische implicatie, alle |
16 |
16 |
uitgevoerde data ook valide zijn. \\ |
17 |
17 |
Naar toekomstperspectief is dit van onmisbaar belang voor vele instanties, en de |
18 |
18 |
UHasselt is hierop geen uitzondering. |
19 |
19 |
|
20 |
20 |
De datavalidatie zorgt ook bij de programmatuur voor verbetering: Er hoeft enkel |
21 |
21 |
gecontroleerd te worden of de ingevoerde data valide is. De validatielaag kan |
22 |
22 |
eventueel foutcodes terugsturen, die dan een bepaalde fout aanduiden. \\ |
23 |
23 |
Met andere woorden: Er hoeft enkel bij opslaan in de databank gecontroleerd te worden op |
24 |
24 |
correctheid. Bij opvragen van informatie kunnen er met valide data zelfs |
25 |
25 |
automatisch zekerheden aangenomen worden. Bijvoorbeeld: Als de databank steeds |
26 |
26 |
valideert dat een lokaalreservatie tussen 08:00 en 24:00 plaatsvindt, dan hoeft |
27 |
27 |
een programma dat lokaalreservaties weergeeft enkel een tabel met die uren weer |
28 |
28 |
te geven, en hoeven uren van voor 08:00 niet weergegeven te worden. |
29 |
29 |
** Django models en validators |
30 |
30 |
Django geeft de mogelijkheid om dergelijke beveiligingen en validatielagen in |
31 |
31 |
het systeem in te bouwen. Het moet wel gesteld worden dat deze zekerheden niet |
32 |
32 |
doorgepropageerd worden naar de databank zelf (omdat dit niet in een databank |
33 |
33 |
kan worden geΓ―mplementeerd), maar slechts gecontroleerd worden bij invoer via |
34 |
34 |
een programma dat via Django de databank aanspreekt. Bij [[FIX LINK][toekomstige |
35 |
35 |
implementaties]] moet hiermee rekening gehouden worden. Een lijst van alle te |
36 |
- | valideren voorwaarden is gepubliceerd in deze thesis, [[FIX LINK][bijlage ?]]. |
+ |
36 |
valideren voorwaarden is gepubliceerd in deze thesis, [[FIX LINK][bijlage ?]]. |
37 |
37 |
docs/thesis/sources.bib ΒΆ
63 additions and 1 deletion.
View changes Hide changes
1 |
1 |
author = "UHasselt", |
2 |
2 |
title = "Q\&A ALIPA", |
3 |
3 |
year = "2017", |
4 |
4 |
number = "1", |
5 |
5 |
journal = "Nu weet je het", |
6 |
6 |
pages = "4-5", |
7 |
7 |
url = "https://www.uhasselt.be/documents/Tijdschriften/nUweetjeHet/personeelsblad-februari-2017-klein.pdf" |
8 |
8 |
} |
9 |
9 |
|
10 |
10 |
@article{jaarverslag-2017, |
11 |
11 |
author = "UHasselt", |
12 |
12 |
title = "2017 in cijfers", |
13 |
13 |
year = "2017", |
14 |
14 |
journal = "Jaarverslag 2017", |
15 |
15 |
pages = "6", |
16 |
16 |
url = "https://www.uhasselt.be/Documents/UHasselt/algemeen/jaarverslagen/2017/jaarverslag-2017.pdf" |
17 |
17 |
} |
18 |
18 |
|
19 |
19 |
@article{strafwetboek-valsheid-informatica, |
20 |
20 |
author = "Belgische federale regering", |
21 |
21 |
title = "Strafwetboek/Code pΓ©nal", |
22 |
22 |
chapter= "IV", |
23 |
23 |
series = "IIbis", |
24 |
24 |
number = "Artikel 210bis", |
25 |
25 |
url = "http://www.ejustice.just.fgov.be/cgi_loi/loi_a1.pl?language=nl&la=N&cn=1867060801&table_name=wet&&caller=list&fromtab=wet&tri=dd+AS+RANK#LNK0052" |
26 |
26 |
} |
27 |
27 |
|
28 |
28 |
@online{blackboard-privacy-policy, |
29 |
- | title = "Blackboard Privacy Statement", |
+ |
29 |
author = "dr.h.c.mult. Richard M. Stallman", |
+ |
30 |
title = "Who does that server really serve?", |
+ |
31 |
url = "https://www.gnu.org/philosophy/who-does-that-server-really-serve.html" |
+ |
32 |
} |
+ |
33 |
|
+ |
34 |
@report{eu-gdpr, |
+ |
35 |
url = "https://eur-lex.europa.eu/eli/reg/2016/679/oj", |
+ |
36 |
title = "REGULATION (EU) 2016/679 OF THE EUROPEAN PARLIAMENT AND OF THE COUNCIL of 27 April 2016", |
+ |
37 |
subtitle = "on the protection of natural persons with regard to the processing of personal data and on the free movement of such data, and repealing Directive 95/46/EC (General Data Protection Regulation)", |
+ |
38 |
date = "2016-04-27", |
+ |
39 |
author = "European Parliament, Council of the European Union" |
+ |
40 |
} |
+ |
41 |
|
+ |
42 |
@online{bb-tos, |
+ |
43 |
url = "http://www.blackboard.com/legal/terms-of-use.html", |
+ |
44 |
title = "Terms Of Use" |
+ |
45 |
} |
+ |
46 |
|
+ |
47 |
@online{bb-privacy-policy, |
+ |
48 |
title = "Blackboard Privacy Statement", |
30 |
49 |
date = "2018-05-24", |
31 |
50 |
url = "https://www.blackboard.com/legal/privacy-policy.html" |
32 |
51 |
} |
+ |
52 |
|
+ |
53 |
@article{bb-blackout, |
+ |
54 |
url = "https://web.archive.org/web/20101115105111/http://blogs.palmbeachpost.com/extracredit/2008/04/18/blackboard-blackout/", |
+ |
55 |
author = "Kim Miller", |
+ |
56 |
title = "Blackboard Blackout", |
+ |
57 |
date = "2008-04-18" |
+ |
58 |
} |
+ |
59 |
|
+ |
60 |
@article{bb-blackout2, |
+ |
61 |
url = "https://web.archive.org/web/20110926094431/http://media.www.thehunterenvoy.com:80/media/storage/paper1327/news/2009/02/18/News/Portal.Problems.Blackboard.Blackout-3635795.shtml", |
+ |
62 |
author = "Jonathan Jordan", |
+ |
63 |
date = "2009-02-18", |
+ |
64 |
title = "Portal Problems, Blackboard Blackout", |
+ |
65 |
subtitle = "Data Systems at CUNY Malfunction and Disrupt Classes" |
+ |
66 |
} |
+ |
67 |
|
+ |
68 |
@article{bb-crash, |
+ |
69 |
url = "http://itintheuniversity.blogspot.com/2007/11/in-recent-chronicle-article-outlining.html", |
+ |
70 |
author = "Luke Fernandez", |
+ |
71 |
title = "Blackboard catastrophic system crash in Utah", |
+ |
72 |
date = "2007-11-27" |
+ |
73 |
} |
+ |
74 |
|
+ |
75 |
@article{bb-dataloss, |
+ |
76 |
url = "http://bpeacock22.blogspot.com/2009/01/great-blackboard-crash-of-09.html", |
+ |
77 |
title = "The Great Blackboard Crash of 09", |
+ |
78 |
author = "Benjamin s.s.t.t.", |
+ |
79 |
date = "2009-01-21" |
+ |
80 |
} |
+ |
81 |
|
+ |
82 |
@online{ufora, |
+ |
83 |
url = "https://www.ugent.be/nl/actueel/lms-ufora.htm", |
+ |
84 |
title = "De nieuwe Minerva heet Ufora", |
+ |
85 |
author = "Universiteit Gent", |
+ |
86 |
date = "2018-06-17" |
+ |
87 |
} |
+ |
88 |
|
+ |
89 |
@online{opleiding-informatica, |
+ |
90 |
url = "https://www.uhasselt.be/documents/BROCHURES/2018-2019/Master-Informatica-2018-web.pdf", |
+ |
91 |
title = "Master in de Informatica", |
+ |
92 |
year = "2018", |
+ |
93 |
author = "Universiteit Hasselt" |
+ |
94 |
} |
33 |
95 |
docs/thesis/toekomst.org ΒΆ
67 additions and 17 deletions.
View changes Hide changes
1 |
- | Joeni is op dit moment een kant-en-klare oplossing voor de problemen die |
2 |
- | BlackBoard en het studentendossier stellen aan de UHasselt. |
3 |
- | |
+ |
1 |
Joeni is op dit moment een voorbeeld van een kant-en-klare oplossing voor de problemen die |
+ |
2 |
BlackBoard en het studentendossier stellen aan de UHasselt. |
+ |
3 |
|
4 |
4 |
Maar software is steeds in beweging, en is nooit af. Daarom dat ik hier enkele |
5 |
- | punten voorzie omtrent de toekomstige uitbreidingen die aan Joeni zouden kunnen |
6 |
- | worden toegevoegd. |
7 |
- | |
+ |
5 |
punten voorzie omtrent de toekomstige uitbreidingen die aan Joeni zouden kunnen |
+ |
6 |
worden toegevoegd, of aan eender welk ander programma dat als vervanging zou dienen.[fn:still-joeni] |
+ |
7 |
|
8 |
8 |
** /Desktop/-applicatie |
9 |
- | Op dit moment wordt Joeni gebruikt via een webbrowser. Maar dit hoeft niet per |
10 |
- | sΓ©. |
11 |
- | Een mooie (latere) uitbreiding voor Joeni, is dat de software uitgebreid wordt |
12 |
- | met een applicatie die direct op de computers van de gebruikers kan werken. |
13 |
- | |
+ |
9 |
gebruikt om "een vervangende applicatie" te beschrijven, alhoewel dit eender welk |
+ |
10 |
ander programma kan zijn. Indien het specifiek om Joeni gaat, zal dit ook |
+ |
11 |
duidelijk blijken uit de context. |
+ |
12 |
|
14 |
13 |
Dit opent vanzelfsprekend mooie nieuwe toepassingen, zoals integratie met |
15 |
- | /desktop features/ (zoals notificaties in de werkbalk), gemakkelijk door de |
16 |
- | bestanden kunnen scrollen op een computer, verhoogde snelheid, dynamische |
17 |
- | veranderingen in de interface, /direct messaging/ ... |
18 |
- | |
+ |
14 |
Op dit moment wordt Joeni gebruikt via een webbrowser, maar dit is zeker niet |
+ |
15 |
wat het eindpunt zou moeten zijn. |
+ |
16 |
|
19 |
17 |
De data wordt natuurlijk vanaf de server gehaald (net zoals Joeni op dit moment |
20 |
- | de data opvraagt). Hiervoor is geen aanpassing nodig aan de bestaande databank. |
21 |
- | |
+ |
18 |
aan hun gebruikers bieden; ze zijn van nature statische tekstbestanden, die |
+ |
19 |
enkel informatie kunnen doorsturen, en (gestructureerd) via speciale |
+ |
20 |
HTML-formulieren informatie kunnen opvangen. Daar komen dan ook een hoop |
+ |
21 |
beveiligingsproblemen bij kijken, die inherent zijn aan websites. |
+ |
22 |
|
+ |
23 |
Joeni moet een programma worden dat op de computer zelf draait. Veel features |
+ |
24 |
die nu simpelweg niet mogelijk zijn in Joeni, zouden hiermee wel mogelijk |
+ |
25 |
worden: |
+ |
26 |
- Pop-ups die aangeven als er een wijziging is gebeurd in het uurrooster :: Nu |
+ |
27 |
moeten studenten zelf naar die webpagina surfen, er wordt geen proactieve |
+ |
28 |
melding hiervan gemaakt. Veel agendaprogramma's geven hier ook geen melding |
+ |
29 |
van, dus via iCal zal dit ook niet lukken. |
+ |
30 |
- Live chat :: Dit is meer een feature die naar Agora toe gericht is, maar een |
+ |
31 |
live chat is ook technisch niet mogelijk zonder /client-side |
+ |
32 |
scripting/. Dit zou een uiterst handige toepassing zijn voor |
+ |
33 |
groepswerken, waarvoor studenten nu nog altijd zijn aangewezen op |
+ |
34 |
programma's van derden. |
+ |
35 |
- Offline halen van studiemateriaal :: Het is triviaal, maar Joeni werkt enkel |
+ |
36 |
met een internetverbinding, net zoals *elke webapplicatie van de UHasselt*. |
+ |
37 |
Een "echt" programma kan al het studiemateriaal, meldingen, opdrachten, ... |
+ |
38 |
downloaden op de computer van de student, zodat dit altijd offline |
+ |
39 |
geraadpleegd kan worden. Het indienen van taken kan dan ook offline |
+ |
40 |
gebeuren, waarna het programma zelf bij de eerstvolgende netwerkverbinding |
+ |
41 |
de taak doorstuurt. |
+ |
42 |
- Veel betere samenhang/snelheid :: Een webapplicatie impliceert dat alle pagina's |
+ |
43 |
telkens opnieuw moeten worden ingeladen, er zit dus altijd een soort van |
+ |
44 |
/delay/ tussen een klik van de gebruiker en de uiteindelijke reactie. De |
+ |
45 |
browser moet ook alles inladen en /renderen/, dus een supersnelle cache |
+ |
46 |
alleen zal nooit het snelheidsprobleem kunnen oplossen. En als de |
+ |
47 |
verbinding wegvalt tijdens het inladen, dan is Joeni plots niet meer |
+ |
48 |
bereikbaar, redelijk frustrerend. Een programma op de computer zelf heeft |
+ |
49 |
al deze problemen niet. Er kan ook gebruik gemaakt worden van een hoop |
+ |
50 |
andere /widgets/ (zoals tabs in hetzelfde venster) die de samenhang verder |
+ |
51 |
kunnen verhogen. |
+ |
52 |
- Dynamische/Directe informatie :: Als de gebruiker een fout maakt bij de |
+ |
53 |
interactie met de website, dan kan hier pas melding van worden gemaakt als |
+ |
54 |
de pagina opnieuw wordt ingeladen. Met een applicatie op de computer kunnen |
+ |
55 |
direct meldingen worden gegeven, en kan het indienen onmogelijk worden |
+ |
56 |
gemaakt totdat de gebruiker alle problemen heeft opgelost. Het geeft ook |
+ |
57 |
zekerheid: Als een knop wordt ingedrukt, dan is er zekerheid dat de |
+ |
58 |
verandering correct werd doorgevoerd. |
+ |
59 |
|
+ |
60 |
De reden dat er voor Joeni toch gekozen is voor een webapplicatie om te |
+ |
61 |
beginnen, is omdat het niet zozeer de bedoeling was dat Joeni "het eindpunt" zou |
+ |
62 |
worden, maar eerder een voorstelling van hoe het eruit zou kunnen zien. Het zou |
+ |
63 |
Joeni ook complexer maken: Rekening houden met dynamische veranderingen, pop-ups |
+ |
64 |
inbouwen (waarvan de API's kunnen verschillen per besturingssysteem), ... Het |
+ |
65 |
maakt het geheel veel moeilijker om te bouwen, maar voegt weinig toe voor deze bachelorproef. |
+ |
66 |
Daarom dat een website het idee van Joeni veel beter overbrengt, maar dan wel in |
+ |
67 |
een statische setting.\\ |
+ |
68 |
Daarbij is een groot deel van de code in de achtergrond (voornamelijk de |
+ |
69 |
databasecode) overdraagbaar, daar een desktopapplicatie sowieso contact zal |
+ |
70 |
moeten onderhouden met een databank. |
+ |
71 |
docs/thesis/uurrooster.org ΒΆ
0 additions and 2 deletions.
docs/thesis/uurroosters.org ΒΆ
4 additions and 4 deletions.
View changes Hide changes
1 |
1 |
Alle studenten beschikken over uurroosters die informatie verschaffen omtrent |
2 |
2 |
hun weekplanning. Er zijn echter verschillende problemen met het huidige |
3 |
3 |
systeem. |
4 |
4 |
|
5 |
5 |
*** 3 verschillende systemen |
6 |
6 |
In plaats van dat er één uurrooster is dat de meest relevante informatie |
7 |
7 |
weergeeft, zijn er een hoop verschillende manieren om aan het rooster te |
8 |
8 |
geraken. |
9 |
9 |
**** Gewone uurroosters |
10 |
10 |
Op [[collegeroosters.uhasselt.be][deze pagina]] moeten studenten hun faculteit |
11 |
- | ingeven[fn:why-sit], daarop hun academiejaar, en dan het nummer van de week |
+ |
11 |
ingeven[fn:why-sit], daarop hun academiejaar, en dan het nummer van de week |
12 |
12 |
die ze willen inkijken. Daarop wordt een "interactieve" gif-afbeelding |
13 |
13 |
ingeladen waarop de uren van een modeltraject worden weergegeven. |
14 |
14 |
|
15 |
15 |
[fn:why-sit] Om een onbekende reden wordt de studierichting Informatica apart |
16 |
16 |
geklasseerd onder de faculteit "SIT", maar dit is onjuist; deze studierichting |
17 |
17 |
valt onder de faculteit Wetenschappen. |
18 |
18 |
|
19 |
19 |
Dit systeem heeft verschillende problemen: |
20 |
20 |
- Werkt niet zonder JavaScript :: Alhoewel dit makkelijk zonder JS kan werken, |
21 |
21 |
werkt de website niet als scripts uitgeschakeld zijn. [[why-no-js][Dat vormt een probleem]]. |
22 |
- | - Weeknummers i.p.v. gewone data :: Ik ken geen mensen die bijhouden welke week |
+ |
22 |
- Weeknummers i.p.v. gewone data :: Ik ken geen mensen die bijhouden welke week |
23 |
23 |
van het jaar het is. We houden wel bij welke dag het is, en de meesten |
24 |
24 |
plannen ook in op dagen. |
25 |
25 |
- Opent niet automatisch op huidige week :: Veelal wordt het uurrooster gecheckt |
26 |
26 |
omdat men wilt weten wat er deze week gebeurd. |
27 |
27 |
- HTML Γ©n PDF :: Men kan zowel een HTML-pagina openen, als een PDF-bestand. |
28 |
28 |
Waarom dat nodig is is niet geweten, maar het maakt de |
29 |
29 |
achterliggende applicatie wel complexer om te onderhouden. |
30 |
30 |
- Enkel modeltraject :: Veel studenten volgen een GIT-traject, maar zij moeten |
31 |
31 |
met dit systeem vaak 2 Γ‘ 3 keer opnieuw het proces doorlopen om |
32 |
32 |
verschillende uurroosters zelf naast elkaar te leggen. |
33 |
33 |
- Niet up-to-date :: Uit het onderzoek [LINK-NAAR-ONDERZOEK][bleek dat dit |
34 |
- | uurrooster niet up-to-date is, en slechts 1 keer per dag wordt vernieuwd]. |
35 |
- | Zeker bij snelle wijzigigen voor bv. gastcolleges is dit uurrooster onbetrouwbaar. |
+ |
34 |
[[Vergadering 1][bleek dat dit uurrooster niet up-to-date is, en slechts 1 keer per dag wordt vernieuwd]]. |
+ |
35 |
Zeker bij snelle wijzigigen voor bv. gastcolleges is dit uurrooster onbetrouwbaar. |
36 |
36 |
Kleine opmerking bij het iCal-bestand dat op de pagina staat: Alhoewel de |
37 |
37 |
iCal-specificatie velden specifieert voor locatie, wordt alle informatie over |
38 |
38 |
een bepaalde gebeurtenis in de titel van het evenement geplaatst. |
39 |
39 |
**** Dynamische uurroosters |
40 |
40 |
[[https://uhintra03.uhasselt.be/uurroosters/][Deze uurroosters]] Zijn een directe verbetering op de [[Gewone uurroosters][gewone uurroosters]]; ze zijn |
41 |
41 |
up-to-date, openen op de huidige week en geven slechts 1 resultaat (een |
42 |
42 |
HTML-pagina). De resterende problemen blijven echter bestaan. |
43 |
43 |
**** Uurrooster Studentendossier |
44 |
44 |
Er is ook de mogelijkheid om een gepersonaliseerd uurrooster op te vragen |
45 |
45 |
[[https://uhintra02.uhasselt.be/studdosst/sdsUurrooster.aspx][via het studentendossier]]. Deze geeft wΓ©l een GIT-traject, maar is nogal |
46 |
46 |
omslachtig om te bereiken en ziet er erg gedateerd uit. Er is ook geen |
47 |
47 |
mogelijkheid om een iCal-bestand te verkrijgen, dus voor de meest relevante |
48 |
48 |
informatie moeten studenten steeds naar deze website surfen. Doordat het |
49 |
49 |
JavaScript vereist is een simpele /web scraper/ schrijven ook niet echt triviaal |
50 |
50 |
om te doen. |
51 |
51 |
**** Nood aan eengemaakt systeem |
52 |
52 |
Wat op dit moment bestaat is ontoereikend voor de vereisten van de studenten. De |
53 |
53 |
systemen zijn omslachtig, complex en ze voelen gedateerd aan (en zijn dat ook). |
54 |
54 |
Daarnaast is drie verschillende applicaties onderhouden sowieso gecompliceerder |
55 |
55 |
dan maar ééñ onderhouden. |
56 |
56 |
|
57 |
57 |
In Joeni wordt dan ook een eengemaakt uurrooster voorgesteld, dat poogt al deze |
58 |
58 |
problemen op te lossen. |
59 |
59 |
docs/thesis/verbeteringspunten_joeni.org ΒΆ
18 additions and 0 deletions.
View changes Hide changes
1 |
1 |
Alhoewel Joeni wel degelijk een positieve invloed kan hebben op de |
2 |
2 |
IT-infrastructuur van UHasselt, zijn er nog steeds enkele punten die een |
3 |
3 |
beperking kunnen opleveren. Deze punten worden in dit hoofdstuk toegelicht. |
4 |
4 |
*** Algemeen |
5 |
5 |
*Joeni is niet volledig in het Nederlands*. Sommige onderdelen worden wel in een |
6 |
6 |
andere taal weergegeven dan Engels, maar deze zijn vaak automatisch via het |
7 |
7 |
Django-framework vertaald (zoals de namen van dagen). Hier dient wel |
8 |
8 |
genuanceerd te worden dat Blackboard eveneens niet in het Nederlands is. Voor |
9 |
9 |
Joeni was meertalig zijn geen prioriteit, en dus is er meer aandacht besteedt |
10 |
10 |
aan het maken van een volledig /functioneel/ programma, dan een volledig |
11 |
11 |
/vertaald/ programma. Moest Joeni echter later ook ingezet worden binnen de |
12 |
12 |
UHasselt, dan is vertalen in Nederlands, Frans, Duits, ... uiterst simpel: Alle |
13 |
13 |
infrastructuur om te vertalen is al aanwezig in het Django-framework zelf. In |
14 |
14 |
de code zijn alle te vertalen blokken ook gemarkeerd. |
15 |
15 |
**** Missende pagina's |
16 |
16 |
Niet alle pagina's zitten in Joeni en het is zeker niet mogelijk om direct Bb. |
17 |
17 |
en Std. te vervangen. Er is hier ook een afweging gemaakt tussen complexiteit en |
18 |
18 |
functionaliteit.\\ |
19 |
19 |
Tijdens het schrijven van Joeni werd snel duidelijk dat veel functionaliteit van |
20 |
20 |
Std. verouderd is, en het herimplementeren zou dus nooit nodig zijn. Een goed |
21 |
21 |
voorbeeld hiervan is de link naar het JOS-project van de VDAB[fn:jobteaser]: De link die op |
22 |
22 |
het Std. te vinden is, wordt nu automatisch doorverwezen naar de hoofdpagina van |
23 |
23 |
de VDAB. Sommige attesten op Std. worden ook uitgegeven door bepaalde diensten, |
24 |
24 |
en daarvan kan natuurlijk niet op voorhand geweten zijn welke attesten. |
25 |
25 |
|
26 |
26 |
Sommige pagina's konden gewoonweg niet gereproduceerd worden, omdat ze links |
27 |
27 |
genereren naar bepaalde PDF-bestanden. |
28 |
28 |
|
29 |
29 |
[fn:jobteaser] Op dit moment blijken de links naar het JOS-project offline |
30 |
30 |
gehaald te zijn, en vervangen door een ander systeem genaamd "Jobteaser", maar |
31 |
31 |
het is maar de vraag hoe lang deze links blijven staan. |
32 |
32 |
*** Uurrooster |
33 |
33 |
Het uurrooster biedt *geen mogelijkheid om planning van andere richtingen in te kijken*. |
34 |
34 |
Ik vermoed niet dat dit iets is wat veel mensen zullen missen, maar dit |
35 |
35 |
kan wel later worden toegevoegd als dit nodig blijkt te zijn. Joeni heeft dit |
36 |
36 |
niet omdat het de bedoeling was om een zo simpel mogelijk systeem te ontwerpen |
37 |
37 |
dat zoveel mogelijk mensen tegemoet komt. De mogelijkheid om planningen in te |
38 |
38 |
kijken van andere studierichtingen is niet nuttig genoeg om te toevoeging ervan |
39 |
39 |
te verantwoorden. |
40 |
40 |
|
41 |
41 |
De *vorm van de weergave van de week* was een kritiekpunt op zich van een van de |
42 |
42 |
testers; die merkte op dat de breedte van de verschillende dagen niet gelijk is. |
43 |
43 |
Dit klopt ook: Dagen zonder "evenementen" worden dunner weergegeven dan dagen |
44 |
44 |
waarop wel iets gebeurt. De argumentering hiervan is tweeledig: Enerzijds is het |
45 |
45 |
logisch om belangrijkere zaken (een bezette dag) prominenter weer te geven dan |
46 |
46 |
onbelange zaken (een vrije dag), en dat wordt bekomen door ze breder te maken. |
47 |
47 |
Anderzijds vereist elke dag even breed maken extra opmaakcode.\\ |
48 |
48 |
|
49 |
49 |
*** Lokalen |
50 |
50 |
Dit moet grotendeels worden ingevuld met *recente* informatie over de lokalen op |
51 |
51 |
de UHasselt. Volgens Ines Boonen is er geen systeem informatie bijhoudt over de |
52 |
52 |
lokalen, het is dus zeer waarschijnlijk dat de bestaande informatie dan ook niet |
53 |
53 |
meer up-to-date is. Dit is natuurlijk gemakkelijk te remediΓ«ren door een dag de |
54 |
54 |
universiteit rond te trekken en alle informatie te verzamelen. |
55 |
55 |
|
56 |
56 |
Dit is op dit moment nog niet gedaan voor Joeni, omdat dit geen prioriteit was |
57 |
57 |
van het project. Er zijn enkele voorbeeldlokalen ingevoerd om te laten zien dat |
58 |
58 |
het systeem goed werkt en bruikbare informatie verschaft, maar langs alle |
59 |
59 |
lokalen van de UHasselt gaan behoort niet tot de /scope/ van dit proefwerk. |
60 |
60 |
|
61 |
61 |
*** Prikbord |
62 |
62 |
Niet alle diensten die op het prikbord iets kunnen zetten, kunnen aangeven wie |
63 |
63 |
een bepaald bericht kan zien. Tot nu toe kan enkel de examencommissie bepalen |
64 |
64 |
wie een bericht mag zien, omdat de meeste van hun berichten toch gericht zijn |
65 |
65 |
aan een enkele student.\\ |
66 |
66 |
Dit is nog niet geΓ―mplementeerd omdat nog niet zeker is wat de meest |
67 |
67 |
waarschijnlijke manier is dat informatie gedeeld wordt door de verschillende |
68 |
68 |
diensten. Vermoedelijk zijn de meeste berichten toch bedoeld voor alle studenten |
69 |
69 |
(getuige de PDF's die studeerruimte aanbieden), maar het kan natuurlijk dat |
70 |
70 |
sommige berichten enkel aan een bepaalde studierichting getoond moeten worden. |
71 |
71 |
|
72 |
72 |
*** Agora? |
+ |
73 |
Nieuwe studenten kunnen zich via de website voorinschrijven op de UHasselt. |
+ |
74 |
Alhoewel dit mooi geΓ―ntegreerd zou kunnen worden in Joeni, is er toch beslist |
+ |
75 |
dit niet te doen.[fn:prereg-table] |
+ |
76 |
|
+ |
77 |
Ten eerste is dit niet echt per sΓ© nodig: Ook al vereist de voorinschrijving het |
+ |
78 |
gebruik van /client side scripting/, het is niet zo doorgedreven als bij andere |
+ |
79 |
onderdelen van de website. Daarnaast de pagina er esthetisch gezien nog goed |
+ |
80 |
genoeg uit.\\ |
+ |
81 |
Ten tweede: Dit is een pagina waar haast alle studenten maar één keer in hun |
+ |
82 |
hele leven mee in contact zullen komen. Om hiervoor een pagina toe te voegen aan |
+ |
83 |
Joeni is nogal overbodig, er zijn namelijk tal van andere mogelijke |
+ |
84 |
verbeteringen die veel vaker gebruikt zullen worden. |
+ |
85 |
*** Agora? |
73 |
86 |
Het originele project was groter dan wat Joeni op dit moment is; het eerste |
74 |
87 |
voorstel omvatte ook een universitair communicatieplatform waarop studenten, |
75 |
88 |
docenten en vakgroepen makkelijk met elkaar konden communiceren. Naast |
76 |
89 |
Administratie en Vakken zou dit onderdeel Agora noemen.\\ |
77 |
90 |
Maar Agora staat in het menu doorgekrast. Uiteindelijk zit het niet in Joeni, |
78 |
91 |
voornamelijk omwille van de grootte van het project, maar ook omdat het niet |
79 |
92 |
direct tot een basistaak van de universiteit behoort. |
80 |
93 |
|
+ |
94 |
De tabellen die Agora mogelijk maken zijn echter a |
+ |
95 |
|
+ |
96 |
[fn:prereg-table] voor volledigheid van de databank is er wel een tabel |
+ |
97 |
aangemaakt waarin de voorinschrijvingen kunnen worden opgeslagen, ~~PreRegistration~~. |
+ |
98 |
docs/verslagen.org β docs/thesis/verslagen.org ΒΆ
1 addition and 1 deletion.
View changes Hide changes
1 |
1 |
** praktische informatie |
2 |
2 |
- locatie :: kantoor wim lamotte, edm |
3 |
3 |
- tijd :: [2017-11-30 thu 11:00-11:30] |
4 |
4 |
- aanwezigen :: |
5 |
5 |
- maarten vangeneugden :: student |
6 |
6 |
- prof. dr. wim lamotte :: promotor |
7 |
7 |
- onderwerp :: eerste ontmoeting omtrent bachelorproef |
8 |
8 |
|
9 |
9 |
** samenvatting gesprek |
10 |
10 |
maarten heeft eerder een e-mail gestuurd naar lamotte om de voortgang van de |
11 |
11 |
bachelorproef te bespreken. |
12 |
12 |
deze voortgang werd uitgedrukt door enkele getekende er-diagrammen van de |
13 |
13 |
databank. |
14 |
14 |
|
15 |
15 |
maarten stelt de voorziene opdeling voor: 3 applicaties, draaiend op hetzelfde |
16 |
16 |
platform: |
17 |
17 |
- administration :: implementeert functionaliteit van het [[https://uhintra02.uhasselt.be/studdosst/][studentendossier]] |
18 |
18 |
- agora :: ondersteunend sociaal platform voor studenten en personeel van de |
19 |
19 |
uhasselt |
20 |
20 |
- courses :: implementeert functionaliteit van [[https://bb.uhasselt.be][blackboard]] |
21 |
21 |
|
22 |
22 |
de databank implementeert de basisvereisten, maar kan/moet nog fel uitgebreid |
23 |
23 |
worden. deze uitbreidingen kunnen op vraag van derden toegevoegd worden aan het |
24 |
24 |
systeem. |
25 |
25 |
|
26 |
26 |
** aangebrachte punten door promotor |
27 |
27 |
- kerntaken van de universiteit :: de universiteit moet niet per sΓ© voorzien in |
28 |
28 |
het bouwen van een sociaal systeem, behoort niet tot de kerntaken. kan |
29 |
29 |
volgens lamotte ook "gemakkelijk geswitched worden tussen verschillende |
30 |
30 |
diensten". |
31 |
31 |
er wordt op dit moment gedacht gebruik te maken van google drive. |
32 |
32 |
maarten brengt aan dat een gespecialiseerde oplossing volgens hem beter tot |
33 |
33 |
z'n recht komt voor een organisatie als een universiteit, maar dit |
34 |
34 |
verandert natuurlijk niets aan het feit dat dit geen kerntaak is van de |
35 |
35 |
uhasselt. |
36 |
36 |
- administration en courses prioritair :: dit behoort namelijk wel tot de |
37 |
37 |
kerntaken, en vereist gespecialiseerde software. de prioriteit ligt volgens |
38 |
38 |
lamotte dus duidelijk op het afmaken van deze onderdelen. de grootte van de |
39 |
39 |
bachelorproef vereist dan ook dat er prioriteiten worden vooropgesteld. |
40 |
40 |
- groepen voor vakken :: (dit gaat niet over de studiegroepjes die studenten |
41 |
41 |
kunnen oprichten) sommige vakken hebben zoveel studenten dat het niet |
42 |
42 |
mogelijk is die op dezelfde momenten in eenzelfde college onder te brengen. |
43 |
43 |
deze moeten kunnen worden onderverdeeld in verschillende studiegroepen. |
44 |
44 |
- prioriteitenlijst opstellen :: opnieuw, omwille van de grootte van het |
45 |
45 |
project, vraagt lamotte om een lijst op te stellen van wat maarten ziet als |
46 |
46 |
de prioriteiten van de proef, en hoe deze uitgevoerd zullen worden. dit |
47 |
47 |
moet een informele lijst zijn van de prioriteiten, zodat deze ook door |
48 |
48 |
mensen zonder informatia-achtergrond relatief makkelijk te begrijpen is. |
49 |
49 |
|
50 |
50 |
** actiepunten/afspraken |
51 |
51 |
- maarten zal een prioriteitenlijst opstellen en die doorsturen naar de |
52 |
52 |
promotor. |
53 |
53 |
- promotor zal proberen bruno janssen te betrekken bij de volgende afspraak. |
54 |
54 |
- maarten verplaatst werkzaamheden van agora naar administration en courses. |
55 |
55 |
|
56 |
56 |
* Vergadering Ines Boonen |
57 |
57 |
[2018-03-05 Mon 14:00-15:45] |
58 |
58 |
Ben samengekomen met Ines Boonen om meer details te verkrijgen over de manier |
59 |
59 |
waarop uurroosters worden samengesteld. Zij zat samen in hetzelfde kantoor met |
60 |
60 |
personeel dat de andere faculteiten aandeed (Ines doet enkel fac. |
61 |
61 |
Wetenschappen), dus ik heb een redelijk klare kijk gekregen op het proces. |
62 |
62 |
|
63 |
63 |
** Wanneer |
64 |
64 |
Informatie over de uurroosters komen het hele jaar doorlopend binnen: |
65 |
65 |
- Wijzigingen |
66 |
66 |
- Reservaties van externe partijen |
67 |
67 |
- Reservaties van studentenverenigingen |
68 |
68 |
|
69 |
69 |
De informatie van de richtingen zelf komt meestal binnen begin juli. Er wordt |
70 |
70 |
echter al proactief gevraagd vanaf begin maart om de uurroosters van het 1ste |
71 |
71 |
semester volgend academiejaar in te plannen. |
72 |
72 |
|
73 |
73 |
** Kunnen er nu eisen aan reservaties gesteld worden? |
74 |
74 |
*Neen.* Alleszins niet automatisch of gestructureerd. |
75 |
75 |
|
76 |
76 |
De dienst onthoudt de eigenschappen van reservaties uit het hoofd. Alhoewel |
77 |
77 |
enkel reserveerbare lokalen in de lijst verschijnen (personeelskantoren (en alle |
78 |
78 |
niet-reserveerbare lokalen in feite) worden niet weergegeven), wordt er enkel |
79 |
79 |
aangegeven hoeveel zitplaatsen er in een lokaal zijn, en of er al dan niet al |
80 |
80 |
iets ingepland is. |
81 |
81 |
|
82 |
82 |
** Manuele pogingen |
83 |
83 |
Er worden soms manueel pogingen ondernomen om bepaalde handigheiden te |
84 |
84 |
verkrijgen: |
85 |
85 |
- Soms wilt een prof 2 aparte lokalen. Er wordt dan geprobeerd om die 2 lokalen |
86 |
86 |
dan langs elkaar te reserveren. |
87 |
87 |
- Het is beter om een groep studenten een hele voor- of namiddag in hetzelfde |
88 |
88 |
lokaal te houden. Dit is puur voor logistieke redenen (gangen niet overbelasten) |
89 |
89 |
- Er wordt geprobeerd om lokalen een volledige dag vrij te houden. Dit wordt |
90 |
90 |
onderling besproken met "de tafel" om wat rond te schuiven. |
91 |
91 |
|
92 |
92 |
** Rekening mee te houden |
93 |
93 |
- Alle modeltrajecten :: Vakken uit modeltrajecten mogen niet overlappen. Met |
94 |
94 |
GIT-studenten wordt op dit moment geen rekening gehouden (alhoewel het |
95 |
95 |
technisch wel mogelijk kan zijn om dat te regelen zodat studenten geen |
96 |
96 |
overlappingen hebben in hun curricula) |
97 |
97 |
- Schakelstudenten :: Sommige schakeljaren nemen ook vakken op van het lopende |
98 |
98 |
masterjaar, maar niet alle vakken. Er dient dus rekening gehouden te worden |
99 |
99 |
dat schakelstudenten Γ©n gewone masterstudenten beide al hun vakken kunnen |
100 |
100 |
volgen (voor zover ze het modeltraject volgen) |
101 |
101 |
- Lawaaioverlast :: Sommige ingeplande reservaties veroorzaken lawaaioverlast. |
102 |
102 |
Er wordt dan rekening gehouden dat reservaties die stilte |
103 |
103 |
vereisen in een bepaalde radius niet worden ingepland. |
104 |
104 |
- Faciliteitsstudenten :: Deze studenten kunnen langer doorwerken aan hun |
105 |
105 |
examens, maar dit moet _manueel_ worden onthouden. Het is niet mogelijk om |
106 |
106 |
dit aan te geven of hier rekening mee te houden bij het plannen van de uurrooters. |
107 |
107 |
|
108 |
108 |
** Proces voor externe reservering |
109 |
109 |
1. Studentenvereniging / externe partij dient aanvraag in bij Dienst |
110 |
110 |
Communicatie (in verband met huur) (Johan bij dienst com. doet dit) |
111 |
111 |
2. Dienst Communicatie vraagt Ines Boonen voor lokaalreservatie in te plannen op |
112 |
112 |
basis van gegeven parameters |
113 |
113 |
3. Ines Boonen stuurt e-mail naar Dienst Communicatie met details |
114 |
114 |
4. Dienst Communicatie koppelt dit terug naar reserveerder |
115 |
115 |
|
116 |
116 |
Interne diensten (zoals bv. het secretariaat) kunnen zelf kijken of er lokalen |
117 |
117 |
vrij zijn, en dan gewoon zelf een reservatie doorvoeren. |
118 |
118 |
|
119 |
119 |
*** Punten voor verbetering |
120 |
120 |
- Met GNU Taler is het mogelijk een betalingssysteem op te bouwen, waarmee |
121 |
121 |
externe partijen parameters kunnen opgeven, waarop het systeem automatisch een |
122 |
122 |
reservatie opstelt. Voor speciale aanvragen (met bepaalde eisen) kan er dan |
123 |
123 |
nog altijd naar de Dienst communicatie gestuurd worden, waarbij het |
124 |
124 |
bovenstaande proces plaatsvindt. |
125 |
125 |
- Voor reservaties door studentenverenigingen is het misschien mogelijk dat ze |
126 |
126 |
zelf met Ines contact opnemen? (Bij speciale eisen. Anders kan dat ook volgens |
127 |
127 |
het gewone proces, zelfs rond GNU Taler om want zij kunnen gratis reserveren.) |
128 |
128 |
|
129 |
129 |
** Proces voor wijziging van docenten uit |
130 |
130 |
1. Docent stuurt aanvraag wijziging via e-mail (GMail, privacy in gevaar!) naar |
131 |
131 |
Ines Boonen |
132 |
132 |
2. Ines Boonen tracht aan de gestelde voorwaarden te voldoen, en de wijziging in |
133 |
133 |
reservatie door te voeren |
134 |
134 |
3. Ines Boonen stuurt e-mail terug met informatie over de wijziging, en of het |
135 |
135 |
al dan niet gelukt is om de reservatie te verplaatsen |
136 |
136 |
*** Punten voor verbetering |
137 |
137 |
Het is duidelijk dat dit volledig door de docent zelf kan gedaan worden. Deze |
138 |
138 |
geeft dan in het programma de vereiste parameters in. Het programma controleert |
139 |
139 |
de curricula van alle studenten die dat vak volgen (opdat de wijziging geen |
140 |
140 |
conflict veroorzaakt), en doet een voorstel voor andere lokalen, tegemoetkomend |
141 |
141 |
aan de gegeven parameters. |
142 |
142 |
|
143 |
143 |
Moest er geen oplossing gevonden worden (bv. steeds conflict, niet voldaan aan |
144 |
144 |
voorwaarden), dan kan het programma misschien een oplossing voorstellen die een |
145 |
145 |
parameter negeert? \\ |
146 |
146 |
In elk geval: Het blijft wel mogelijk om Ines Boonen een e-mail te sturen moest |
147 |
147 |
het niet automatisch gaan, en |
148 |
148 |
natuurlijk ook als het een reservatie met speciale eigenschappen betreft. |
149 |
149 |
|
150 |
150 |
** Proces voor opstellen van semestriΓ«le uurroosters |
151 |
151 |
1. Docenten sturen documenten (op papier/in .docx) in met vereisten, tijden dat |
152 |
152 |
ze niet beschikbaar zijn, welke docent wat geeft (zodat docenten soms kunnen |
153 |
153 |
worden ingewisseld om ze vrij te krijgen voor andere momenten), ... |
154 |
154 |
2. De dienst lokaalreservaties neemt het uurrooster van het vorige jaar bij |
155 |
155 |
wijze van sjabloon, en begint daarvan de nodige wijzigingen aan te brengen. |
156 |
156 |
3. Resultaten worden voorgelegd aan de betrokken personeelsleden, en eventuele |
157 |
157 |
reacties achteraf worden in acht genomen (er kunnen dus nog wat wijzigingen |
158 |
158 |
gemaakt worden). |
159 |
159 |
*** Punten voor verbetering |
160 |
160 |
De vereisten komen binnen in papiervorm... Dit is dus zeer gemakkelijk te |
161 |
161 |
automatiseren, als de docenten maar gewoon in een programma ingeven wat hun |
162 |
162 |
vereisten zijn. Op dit moment moet het personeel dit allemaal manueel ingeven, |
163 |
163 |
en zo kunnen er fouten ontstaan. Het vreemde is dat deze data via docx-bestanden |
164 |
164 |
wordt gestuurd. Hier kunnen namelijk ook weer fouten in optreden, en Word is |
165 |
165 |
sowieso iets dat vermeden dient te worden. |
166 |
166 |
|
167 |
167 |
** Waarom kunnen studenten niet reserveren? |
168 |
168 |
Te vervelend. |
169 |
169 |
|
170 |
170 |
Studenten gebruiken de lokalen te vaak om te eten/drinken, om dingen te doen die |
171 |
171 |
niet studeren zijn, ... Ze laten soms de lokalen ook vuil achter en dan komen er |
172 |
172 |
klachten binnen. Door dat misbruik is het voor hen niet mogelijk om dat te doen. |
173 |
173 |
|
174 |
174 |
Het maakt het ook een stuk moeilijker voor de dienst lokaalreservaties om hun |
175 |
175 |
werk te doen; er is sowieso al een tekort aan lokalen op de UHasselt, en als |
176 |
176 |
studenten ook nog beginnen te reserveren zal het helemaal niet meer lukken om |
177 |
177 |
nog /last minute/ wijzigingen voor colleges bv. door te voeren. \\ |
178 |
178 |
Soms komen studenten ook gewoon niet opdagen en dan is dat natuurlijk een lokaal |
179 |
179 |
weggegooid. |
180 |
180 |
|
181 |
181 |
Het compromis was vroeger om de lijst van lokaalreservaties van die dag af te |
182 |
182 |
drukken en op te hangen, maar dit wordt niet meer gedaan omdat dit te omslachtig |
183 |
183 |
is. |
184 |
184 |
|
185 |
185 |
Een middenweg zou natuurlijk kunnen zijn dat de lokaalreservaties online kunnen |
186 |
186 |
worden bekeken door studenten, via de website. |
187 |
187 |
|
188 |
188 |
** Perspectief van de ontwikkelaar |
189 |
189 |
In de databank zouden volgende eigenschappen van een lokaal moeten worden |
190 |
190 |
bijgehouden (exclusief wat ik al in het schema zou bijhouden): |
191 |
191 |
- Tafels staan vast of los (voor bv. groepsprojecten willen sommigen dat die |
192 |
192 |
verplaatst kunnen worden) |
193 |
193 |
- Aantal stopcontacten |
194 |
194 |
- Buitenraam aanwezig of niet |
195 |
195 |
- Welke programma's op de computers staan (omwille van de propriΓ«taire software |
196 |
196 |
staan bepaalde programma's niet altijd op alle computers) |
197 |
197 |
|
198 |
198 |
*Dit moet ook geΓΌpdatet worden!* Op dit moment worden *alle* aanvragen via die |
199 |
199 |
dienst gestuurd (omdat zij bepaalde informatie gewoon uit het hoofd geleerd |
200 |
200 |
hebben), maar als deze ook in de databank staat kunnen docenten regelmatig |
201 |
201 |
gemakkelijk zΓ©lf wijzigingen doorvoeren. |
202 |
202 |
|
203 |
203 |
Reservaties kunnen plaatsvinden van 08:00 - 22:00. Voor latere reservaties (tot |
204 |
204 |
24:00) moet er echter beveiliging worden gevraagd (Securitas). Dit vereist dus |
205 |
205 |
een tijdige reservering. |
206 |
206 |
|
207 |
207 |
*** Huidige situatie |
208 |
208 |
Het gebruikte programma is volgens Ines ~20 jaar oud. Het zou geschreven zijn in |
209 |
209 |
VB.NET maar dat is onmogelijk, .NET kwam pas in 2002 uit. Door de ouderdom van |
210 |
210 |
de software werkt deze hoogstens op Windows 7, Windows 10 kan het niet aan. |
211 |
211 |
|
212 |
212 |
De software is ook zéér volatiel en traag. Het aanpassen van de uurroosters gaat |
213 |
213 |
ontzettend traag, waardoor de uurroosters pas 's nachts worden geΓΌpdatet. (Het |
214 |
214 |
dynamisch uurrooster geeft echter wel de onmiddelijke situatie weer). Bij te |
215 |
215 |
veel aanpassingen vertraagt het systeem tot een onwerkbare snelheid, en bij |
216 |
216 |
bepaalde aanpassingen crashet het zelfs onverbiddelijk. Edwin (?) houdt voor de |
217 |
217 |
software zelfs een oude computer draaiende naast de gewone server, want zonder |
218 |
218 |
dat computertje werkt dit programma gewoon niet meer. |
219 |
219 |
|
220 |
220 |
De software is geschreven voor de Economische Hogeschool van vroeger, maar is |
221 |
221 |
duidelijk niet mee geΓ«volueerd met de noden van een universiteit van >6000 |
222 |
222 |
studenten, met al hun speciale noden en curricula. |
223 |
223 |
|
224 |
224 |
|
225 |
225 |
** Output |
226 |
226 |
Het is via het gebruikte programma enkel mogelijk om een Excel-rekenblad of een |
227 |
227 |
foto (de .gifs van de uurroosters) te outputten. Simpele tekst is niet mogelijk, |
228 |
228 |
alhoewel de data wel wordt bijgehouden op een externe server (in een databank). |
229 |
229 |
Software kan dit dan gemakkelijk uitlezen. |
230 |
230 |
|
231 |
231 |
** Voorgestelde alternatieven |
232 |
232 |
Geen enkel voorgesteld alternatief is vrije software (afgeleid uit de |
233 |
233 |
prijskaartjes). Voor de volledigheid noteer ik hier toch nog de speerpunten. |
234 |
234 |
*** Porto |
235 |
235 |
Project van de universiteit van Porto. Dit werd door hen voorgesteld aan de |
236 |
236 |
UHasselt ter gebruik, met een 2-jarig onderhoudscontract. \\ |
237 |
237 |
Voorgestelde prijs van ~ β¬10.000 was echter te hoog. Hilde Cleeren wist mij te |
238 |
238 |
vertellen dat dit systeem gebruikt wordt in sommige Scandinavische universiteiten. |
239 |
239 |
*** Syllabus + Enterprise/Classic |
240 |
240 |
Gebruikt door UCLL en KUL. Bezit enorm veel van de gevraagde features: |
241 |
241 |
- Houdt eigenschappen van lokalen bij (bv. aantal computers, zitplaatsen, ...) |
242 |
242 |
- Waarschuwt automatisch voor overlappingen bij opstellen uurroosters en |
243 |
243 |
wijzigingen |
244 |
244 |
- Doet zelf voorstellen voor een bepaalde wijziging, op basis van gegeven |
245 |
245 |
parameters |
246 |
246 |
- Kan blijkbaar geΓ―ntegreerd worden met de agenda's van bv. professoren, zodat |
247 |
247 |
onvrije momenten niet ingepland kunnen worden |
248 |
248 |
- Houdt ook informatie over examenroosters bij (huidige systeem doet dit niet) |
249 |
249 |
|
250 |
250 |
Personeel verklaart echter dat ze het systeem niet fijn werken vinden, maar |
251 |
251 |
vermoeden dat dat vooral een kwestie van smaak is; ze zijn het huidige systeem gewoon. |
252 |
252 |
|
253 |
253 |
*** Eduflex |
254 |
254 |
Grotendeels zoals Syllabus+, maar meer informatie niet gegeven. |
255 |
255 |
|
256 |
256 |
*** Untis |
257 |
257 |
Gebruikt op de PXL, maar meer informatie was nog niet beschikbaar. |
258 |
258 |
|
259 |
259 |
** Voorrangsregels |
260 |
260 |
Gastprofessoren en -sprekers, docenten van andere universiteiten, ... *hebben |
261 |
261 |
absoluut voorrang.* Hun schema's zijn haast niet aan te passen. |
262 |
262 |
|
263 |
263 |
Daarna hangt het vooral af van de specifieke vereisten van docenten. |
264 |
264 |
|
265 |
265 |
** Keuzevakken en groepen |
266 |
266 |
Voor veel richtingen worden de studenten opgedeeld in groepen. Deze groepen |
267 |
267 |
zijn al dan niet zelf te kiezen, of worden toegewezen door de planners van het |
268 |
268 |
uurrooster (bv. Ines Boonen). |
269 |
269 |
|
270 |
270 |
Gemakkelijkheidshalve worden deze groepen (indien mogelijk) ingedeeld volgens |
271 |
271 |
hun keuzevakken. Mensen die Spaans volgen komen dan in groep A/B/C terecht, en |
272 |
272 |
diegenen die Duits volgen in groep D/E/F. |
273 |
273 |
|
274 |
274 |
Het zou echter handig zijn mocht de naam van de docent _niet_ verschijnen als de |
275 |
275 |
studenten zich zelf in groepen moeten indelen. Het blijkt dat studenten dan gaan |
276 |
276 |
kiezen voor een bepaalde docent. |
277 |
277 |
|
278 |
278 |
** Andere weetjes |
279 |
279 |
- Het semestersysteem wordt de standaard binnen haast alle opleidingen. Voor |
280 |
280 |
eerstejaars blijft echter soms nog het kwartielsysteem behouden, voor een |
281 |
281 |
enkele richting is elk jaar een kwartielsysteem (4 kwartielen). |
282 |
282 |
- Sommige studierichtingen zijn wel ingedeeld in groepen, maar zijn dit enkel op |
283 |
283 |
papier. In het systeem wordt dit dan niet opgeslagen. Dit moet dan manueel |
284 |
284 |
ingegeven worden. |
285 |
285 |
- Het is mogelijk dat ze zelfs reservaties ontvangen die pas over 2 jaar |
286 |
286 |
plaatsvinden. |
287 |
287 |
- Lokalen worden 's ochtends door "materiaalmeesters" geopend. Als een lokaal |
288 |
288 |
voor een dag niet gereserveerd is, dan wordt dat lokaal ook niet geopend. |
289 |
289 |
- Soms zijn er speciale eisen bij een lokaalreservatie (bv. er moet een TV |
290 |
290 |
geplaatst worden of zo, een experiment, ...). Deze nota verschijnt dan bij de |
291 |
291 |
lokaalreservatie, waarvan de materiaalmeesters op de hoogte worden gebracht |
292 |
292 |
(zij kunnen dit namelijk inkijken). |
293 |
293 |
- Hilde Cleeren Heeft voorgesteld om de studenten op te delen in klasselijsten. Volgens |
294 |
294 |
haar kan ze zo makkelijk zien hoeveel studenten een overlap hebben bij een |
295 |
295 |
bepaalde wijziging. Als dat 1-2 studenten zijn wordt dat soms gedaan, alleen |
296 |
296 |
wordt er dan wel gezorgd dat die student volgende week zeker _niet_ overlap |
297 |
297 |
hebben. Als er bv. 10 studenten overlap hebben wordt het nooit gedaan. |
298 |
298 |
|
299 |
299 |
** Conclusie |
300 |
300 |
Het grootste probleem is volgens het personeel dat er te veel onthouden moet |
301 |
301 |
worden; informatie die gemakkelijk door het systeem kan worden bijgehouden |
302 |
302 |
(zoals bv. het aantal computers in een lokaal, of een lokaal ΓΌberhaupt een |
303 |
303 |
computerlokaal is, ...) wordt nu middels "ervaring" onthouden. Dit resulteert |
304 |
304 |
van tijd tot tijd in menselijke fouten in de planning. |
305 |
305 |
|
306 |
306 |
Het uurrooster van het vorige academiejaar als sjabloon nemen is redelijk |
307 |
307 |
handig. Er kan dan ook direct door de computer vastgelegd worden of een docent |
308 |
308 |
wijzigingen moet hebben of niet. |
309 |
309 |
|
310 |
310 |
Het huidige programma is waarschijnlijk verloren. Dit zal echter afhangen van de |
311 |
311 |
gebruikte programmeertaal, maar naar de toekomst toe zie ik het niet zitten. Het |
312 |
312 |
programma is inefficiΓ«nt, heeft onverklaarbare momenten van traagheid, crashet |
313 |
313 |
en vereist een oude, externe computer omdat het niet draait op een recent |
314 |
314 |
besturingssysteem. |
315 |
315 |
Een duurzaam en robuust nieuw programma dringt zich op. Het personeel uit echter |
316 |
316 |
de wens dat het huidige programma wat herschreven wordt, om de opgedane ervaring |
317 |
317 |
hiermee makkelijk over te dragen. Ik vermoed echter dat een volledig nieuw programma |
318 |
318 |
dat niet te fel afwijkt van het huidige programma in het humane aspect, zeker |
319 |
319 |
geaccepteerd zal worden. |
320 |
320 |
|
321 |
321 |
De aangebrachte alternatieven zijn misschien toereikend in functionaliteit, maar |
322 |
322 |
omdat het geen vrije software betreft zou het gebruik hiervan uiteindelijk in |
323 |
323 |
problemen resulteren die met vrije software makkelijk voorkomen kunnen worden (omwille van de |
324 |
324 |
controle die men heeft over vrije software). De huidige software is vrij (intern |
325 |
325 |
geschreven door cel ISA), maar is waarschijnlijk niet meer te onderhouden. Ook |
326 |
326 |
door de aard van het bedrijf zelf (Universiteit Hasselt) lijkt een nieuwe, |
327 |
327 |
intern geschreven oplossing de enige oplossing op lange termijn. (Men kan ook |
328 |
328 |
een extern bedrijf inschakelen, maar het is maar de vraag of zij bereid zijn een |
329 |
329 |
vrije oplossing aan te reiken.) \\ |
330 |
330 |
*** Onderhoudscontract als substituut voor vrije software |
331 |
331 |
Het onderhoudscontract van de oplossing van de Universiteit van Porto is |
332 |
332 |
ontoereikend als substituut voor vrije software; men verliest de controle om |
333 |
333 |
zelf de software te wijzigen naar eigen goeddunken. Het verbindt ons ook |
334 |
334 |
onlosmakelijk aan de ontwikkelaars, en het contract geldt maar voor 2 jaar. |
335 |
335 |
Niets houdt de ontwikkelaar tegen om exorbitante prijzen te vragen voor |
336 |
336 |
verlenging. De ontwikkelaar heeft die macht dan, omdat overschakelen op een |
337 |
337 |
andere oplossing tegen dan te duur zal zijn. Met een vrijesoftwareoplossing |
338 |
338 |
heeft de ontwikkelaar die macht niet. |
339 |
339 |
|
340 |
340 |
* Vergadering Bruno Janssen |
341 |
341 |
[2018-03-08 Thu 15:00-16:00] |
342 |
342 |
Afspraak gemaakt voor een "verkennende vergadering" met Bruno Janssen. Hij is |
343 |
343 |
eindverantwoordelijke voor de ICT en heeft een beslissende stem binnen het |
344 |
344 |
ALIPA-project. |
345 |
345 |
** Huidige staat is slecht |
346 |
346 |
Bruno Janssen schuwt de grote woorden niet en noemt de huidige situatie "ronduit |
347 |
347 |
slecht", volgens hem moet je de situatie ook benoemen zoals ze is, zonder rond |
348 |
348 |
de pot te draaien. |
349 |
349 |
*** Voorbeeld: vergaderingen |
350 |
350 |
Als iemand een vergadering wilt organiseren, dan komt er heel wat gepruts bij |
351 |
351 |
kijken; moeten er hapjes voorzien worden, extra stoelen, koffie, een beamer, |
352 |
352 |
... voor al deze zaken moet er naar verschillende nummers getelefoneerd worden. |
353 |
353 |
Dit is een voorbeeld van een vaak voorkomend probleem dat makkelijk |
354 |
354 |
geautomatiseerd kan worden, maar in plaats daarvan moeten we alles manueel zelf |
355 |
355 |
regelen. |
356 |
356 |
** Andere punten |
357 |
357 |
- Er zijn verschillende programma's voor de examenroosters en voor de |
358 |
358 |
uurroosters te maken, en beide worden dus op een andere manier gedaan. |
359 |
359 |
- ir. Janssen raadt mij aan om, omwille van de omvang van het project, mijn |
360 |
360 |
praktische uitwerking te beperken tot het studentengedeelte. Ik neem dit |
361 |
361 |
advies ter harte, omwille van het feit dat ik al +3 jaar hiermee in contact |
362 |
362 |
kom, ben ik hier het beste op de hoogte van de noden van het systeem. |
363 |
363 |
** Beleidstop |
364 |
364 |
De beleidstop heeft de boodschap die ir. Janssen verkondigd begrepen. Heden is |
365 |
365 |
er een meerjerenplan op touw, omdat van de ene dag op de andere alles omgooien |
366 |
366 |
niet haalbaar is. |
367 |
367 |
** Uitbesteden |
368 |
368 |
ir. Janssen gelooft dat het uitbesteden van de software-ontwikkeling een beter |
369 |
369 |
idee is dan de programma's zelf schrijven. |
370 |
370 |
Hiervoor laat hij enkele voorbeeldprogramma's zien die niet zelf zijn |
371 |
371 |
geschreven: |
372 |
372 |
- Fintra :: Een programma om financiΓ«n te beheren |
373 |
373 |
- Ultimo :: Dient om werkopdrachten rond te sturen |
374 |
374 |
Er is blijkbaar ook een programma om het autopark te beheren, alsook een hoop |
375 |
375 |
andere programma's. Ik mocht van ir. Janssen aanwijzen op het scherm waar ik |
376 |
376 |
meer info over wilde, maar ik wist niet waar te beginnen. |
377 |
377 |
*** Google |
378 |
378 |
Om het standpunt van uitbesteding kracht bij te zetten, laat hij me ook zien hoe |
379 |
379 |
fel Google geΓ―ntegreerd wordt in het systeem van de studenten: dit omvat |
380 |
380 |
- GMail |
381 |
381 |
- Google Calendar |
382 |
382 |
- Google Drive |
383 |
383 |
- Google Docs |
384 |
384 |
- Google Sheets |
385 |
385 |
- Google Slides |
386 |
386 |
- Google Meet |
387 |
387 |
- Google Chat |
388 |
388 |
- ... |
389 |
389 |
*Al deze diensten biedt Google gratis aan.* Alhoewel ik het niet met die woorden |
390 |
390 |
heb gezegd, kon ik me niet van de gedachte ontdoen dat hier iets sinister achter |
391 |
391 |
zat van Google uit. Ik zal dit in m'n thesis verder ter sprake brengen. |
392 |
392 |
** Andere vragen |
393 |
393 |
Omdat ir. Janssen niet direct op al m'n vragen kan antwoorden, wordt er |
394 |
394 |
afgesproken dat ik een e-mail stuur met de nog resterende vragen, waarna hij me |
395 |
395 |
dan verdere uitleg zag verschaffen, of doorverwijzen naar de mensen die me met |
396 |
396 |
die vragen kunnen helpen. |
397 |
397 |
|
398 |
398 |
* Vergadering Peter Vandoren |
399 |
399 |
[2018-03-08 Thu 16:00-17:30] |
400 |
400 |
|
401 |
401 |
Deze vergadering gebeurt in het kader van het opstellen van de :quurroosters. Voor |
402 |
402 |
de richting Informatica is dat blijkbaar een afwijkend proces. |
403 |
403 |
|
404 |
404 |
** Algemene situatie |
405 |
405 |
Er bestaat over het algemeen 1 jaarkalender, maar voor elke richting is die |
406 |
406 |
ietsjes anders. |
407 |
407 |
Voorbeeld: Master of Statistics: |
408 |
408 |
2 kwartielen in tweede jaar wegens /time management/-problemen |
409 |
409 |
-> 1 kwartiel volledig voor de proefthesis |
410 |
410 |
|
411 |
411 |
|
412 |
412 |
** Techniek om uurrooster op te stellen |
413 |
413 |
Er wordt een lijstje aan stappen overlopen: |
414 |
414 |
1. (*Basisvraag*) Wat zijn de onderwijsmethoden? Hoe wordt er les gegeven? (Dit |
415 |
415 |
verschilt bv. fel tussen Geneeskunde en Architectuur) |
416 |
416 |
2. Vorm van onderwijs geven; In het 1ste bachelorjaar is dit vaak begeleide |
417 |
417 |
zelfstudie, naarmate de jaren vorderen evolueert het steeds verder naar |
418 |
418 |
volledig zelfstandig leerstof verwerken. |
419 |
419 |
|
420 |
420 |
Deze verschillende vormen van onderwijs geven zijn bepalende factoren; er wordt |
421 |
421 |
namelijk getracht een zo logisch mogelijke dag voor de studenten in te plannen. |
422 |
422 |
Idealiter vormen de eerste momenten van de dag de hoorcolleges, is er daarna een |
423 |
423 |
periode van zelfstudie, die dan wordt afgesloten met een responsiecollege. |
424 |
424 |
|
425 |
425 |
Dit is echter niet de manier waarop elke richting werkt, dus alles heeft zijn |
426 |
426 |
eigen aanpassingen en subtiliteiten. |
427 |
427 |
|
428 |
428 |
** Professoren |
429 |
429 |
Een van de _grootste_ problemen met het inplannen van de uurroosters, zijn de |
430 |
430 |
professoren. Deze zijn druk bezet, en flexibiliteit is moeilijk te verwachten |
431 |
431 |
van hen. Assistenten daarentegen kunnen makkelijk de werkzittingen doen (die |
432 |
432 |
kunnen variΓ«ren over de dag), en zijn flexibeler in te zetten. |
433 |
433 |
|
434 |
434 |
** Informatica |
435 |
435 |
Een speciaal punt in de richting Informatica: Vanaf 3BACH (en dus ook 1MAS, |
436 |
436 |
2MAS) worden er enkel nog maar hoorcolleges ingepland. (de bachelorproef wordt |
437 |
437 |
enkel ingepland als advies) |
438 |
438 |
|
439 |
439 |
Dit heeft veel te maken met de grote hoeveelheid verschillende lessen (door de |
440 |
440 |
specialisaties) die er per week plaatsvinden; het is simpelweg niet mogelijk om |
441 |
441 |
voor al die lessen meer dan enkel de hoorcolleges in te plannen; er zouden |
442 |
442 |
sowieso overlappingen ontstaan, waardoor modeltrajectstudenten sommige lessen |
443 |
443 |
niet zouden kunnen volgen. |
444 |
444 |
|
445 |
445 |
Het is echter mogelijk hierop in te spelen, zie [[Software als oplossing?][verder]]. |
446 |
446 |
|
447 |
447 |
*** Jaaropstelling |
448 |
448 |
In tegenstelling tot bij andere richtingen (die halfjaarlijks werken) wordt er |
449 |
449 |
bij Informatica geprobeerd om een volledig jaar in 1 keer op voorhand uit te |
450 |
450 |
plannen. Dit om de proffen hun schema's zo vroeg mogelijk te bezorgen. |
451 |
451 |
|
452 |
452 |
** Frequentie van een vak |
453 |
453 |
Hoeveel lesuren zijn er nodig voor een vak? Bijkomend: Hoe lang moet een sessie |
454 |
454 |
duren; 1 uur, 2 uren, ...? |
455 |
455 |
|
456 |
456 |
Op basis van hoe deze frequentie voor de verschillende vakken is, wordt een dag |
457 |
457 |
in een jaarkalender opgedeeld in een bepaald aantal blokken. |
458 |
458 |
|
459 |
459 |
Voorbeeld: Master of Statistics is opgedeeld in 2 blokken: |
460 |
460 |
- BLOK 1 :: Voor 12:00 |
461 |
461 |
- BLOK 2 :: Na 12:00 |
462 |
462 |
|
463 |
463 |
Dit wordt niet officieel zo ingepland, maar contactmomenten tussen professoren |
464 |
464 |
en studenten worden op die manier onderling afgesproken. |
465 |
465 |
|
466 |
466 |
Voorbeeld: Master Informatica: |
467 |
467 |
Hier zijn 6 verschillende profielen, met minstens 4 vakken elk. |
468 |
468 |
Primair wordt er gezorgd dat geen van de vakken binnen een bepaald profiel |
469 |
469 |
overlappen, daarna worden de andere profielen in overeenstemming gebracht. |
470 |
470 |
Deze richting werkt met 4 blokken op één dag. |
471 |
471 |
|
472 |
472 |
** Sjablonen |
473 |
473 |
Er wordt haast altijd uitgegaan van de situatie van het vorige jaar, dit wordt |
474 |
474 |
dan als sjabloon gebruikt. |
475 |
475 |
Als er geen veranderingen zijn, dan worden er geen wijzigingen aangebracht. |
476 |
476 |
|
477 |
477 |
Van tijd tot tijd vindt er echter een grote verandering plaats (zoals bij bv. |
478 |
478 |
2de Master of Statistics; die moest recen volledig vervangen worden) |
479 |
- | *** Als vakken van een richting veranderen |
+ |
479 |
*** Als vakken van een richting veranderen |
480 |
480 |
1. Er wordt gekeken naar hoe en wat veranderd |
481 |
481 |
2. Er wordt een voorstel voor een wijziging uitgewerkt |
482 |
482 |
3. Voorstellen aan betrokken partijen |
483 |
483 |
(Het is vaak mogelijk om a.d.h.v. het aantal studiepunten van een vak het |
484 |
484 |
aantal hoorcolleges te bepalen, maar dit kan variΓ«ren) |
485 |
485 |
|
486 |
486 |
Als alles in orde is, wordt het programma naar het secretariaat gestuurd. Zij |
487 |
487 |
plannen de verschillende vakken in voor de lokalen. |
488 |
488 |
|
489 |
489 |
|
490 |
490 |
------ |
491 |
491 |
|
492 |
492 |
De reden dat niet iedereen gewoon 1 keer per jaar samenkomt om alle schema's op |
493 |
493 |
te stellen, is omdat het gedaan moet zijn vΓ³Γ³r de zomervakantie begint. |
494 |
494 |
|
495 |
495 |
Dit proces is namelijk ook /volledig offline/: er is totaal geen zicht op de |
496 |
496 |
agenda's van de proffen. |
497 |
497 |
|
498 |
498 |
De huidige manier van werken is dat er met minimaal overleg gewoon en voorstel |
499 |
499 |
wordt gedaan aan de proffesoren. Die zijn meestal gewoon meegaand met het |
500 |
500 |
voorstel, behoudens enkele kleine aanpassingen. |
501 |
501 |
|
502 |
502 |
** Software als oplossing? |
503 |
503 |
|
504 |
504 |
Dit hele probleem is met de juiste input volledig te automatiseren met een |
505 |
505 |
programma. Het zou dan wel bv. ook rekening moeten houden met studenten die hun |
506 |
506 |
curriculum in het midden van het jaar aanpassen, rekening houden met lokalen, |
507 |
507 |
weet hebben over de agenda's van professoren, ... |
508 |
508 |
|
509 |
509 |
Een mogelijke oplossing zou backtracking kunnen zijn; als een oplossing niet kan |
510 |
510 |
werken, teruggaan naar de laatste mogelijk correcte oplossing, en van daar |
511 |
511 |
verder werken. |
512 |
512 |
|
513 |
513 |
Buiten het schrijven van het programma zelf, is een van de meest complexe |
514 |
514 |
opdrachten dan, om alle betrokkenen zo snel mogelijk al de benodigde informatie |
515 |
515 |
te laten aanleveren: Op dit moment komt de informatie nogal druppelgewijs |
516 |
516 |
binnen, en moeten nieuwigheden naderhand in een schema verwerkt worden (dat |
517 |
517 |
waarschijnlijk al geaccepteerd is door iedereen). Het maakt het allemaal stukken |
518 |
518 |
moeilijker om gewoon een uurrooster op te stellen. |
519 |
519 |