Add new elements to thesis
- Author
- Maarten Vangeneugden
- Date
- July 22, 2018, 9:03 p.m.
- Hash
- 02c51992c9908cc62f4bc5da1fee6bf1516ac055
- Parent
- 575c21ede14ec5f0daeefb7ef4deadd1a9383629
- Modified files
- docs/mail.md
- docs/thesis/client-side-scripting.org
- docs/thesis/huisstijl.org
- docs/thesis/softwarekeuzes.org
docs/mail.md ¶
0 additions and 33 deletions.
View changes Hide changes
1 |
- | |
2 |
- | Zoals besproken bij onze laatste ontmoeting, stuur ik bij deze een e-mail met |
3 |
- | vragen die ik aan u wilde stellen: |
4 |
- | |
5 |
- | - Huidige infrastructuur UHasselt: Welke servers staan waar opgesteld, en wat is |
6 |
- | hun taak? Voornamelijk doel ik hierbij op de servers die de gegevens van |
7 |
- | studenten bevatten, de software draaien die voor de studenten bedoeld is (bv. |
8 |
- | Studentendossier). |
9 |
- | - Welke software wordt gebruikt voor de verschillende databanken? Ik heb |
10 |
- | opgevangen dat hier mogelijk DB2 voor gebruikt wordt, maar om zeker te zijn |
11 |
- | vraag ik het toch even. Wat is de reden achter de keuze van die databank? |
12 |
- | Voldoet de databank nog aan de vereisten die de universiteit stelt aan de |
13 |
- | data? |
14 |
- | - Welke mensen staan in voor het onderhoud van het Studentendossier? Ik zou |
15 |
- | graag met deze mensen contact opnemen met technische vragen i.v.m. broncode, |
16 |
- | gebruikte technologieën en software, ... |
17 |
- | - Misschien een iets persoonlijkere vraag: Ik heb de indruk dat er **enorm** |
18 |
- | veel software wordt gebruikt, soms van derde partijen, ... Ik ben niet |
19 |
- | overtuigd dat _alles_ zijn eigen applicatie nodig heeft, omdat het zo'n |
20 |
- | "niche"-taken zijn, dat het misschien makkelijker is om het gewoon af te |
21 |
- | schaffen en onderling erover te communiceren. Heeft u weet van software die |
22 |
- | gebruikt wordt op de UHasselt die (ook al is dat maar een subjectieve |
23 |
- | opvatting) taken vervult die net zo goed via e-mail of op papier kunnen worden |
24 |
- | afgehandeld? |
25 |
- | - Waar worden de meldingen van de verschillende diensten van de universiteit |
26 |
- | opgesteld (bv. dienst onderwijs)? Waar wordt dat dan opgeslagen? |
27 |
- | |
28 |
- | Alvast bedankt voor de moeite. |
29 |
- | |
30 |
- | Met vriendelijke groeten |
31 |
- | |
32 |
- | Maarten Vangeneugden |
33 |
- |
docs/thesis/client-side-scripting.org ¶
21 additions and 10 deletions.
View changes Hide changes
1 |
1 |
Ingewijden zijn bekend met het feit dat JavaScript een Turing-complete |
2 |
2 |
programmeertaal is; je kunt er dus daadwerkelijk programma's mee schrijven. |
3 |
3 |
Een prominent voorbeeld hiervan is Google met haar Google Docs, Sheets, |
4 |
4 |
Presentations, GMail, ... |
5 |
5 |
|
6 |
6 |
Het valt dan natuurlijk op dat binnen Joeni *geen enkele lijn JavaScript |
7 |
7 |
geschreven is*. En dat is ook expres gedaan. |
8 |
8 |
Dat klinkt misschien nogal contra-intuïtief; een volledig programma, dat |
9 |
9 |
hoofdzakelijk gebruikt zal worden via de browser, dat client-side scripting |
10 |
10 |
expres aan zijn neus voorbij laat gaan. |
11 |
11 |
|
12 |
12 |
Hier zijn meerdere redenen voor. Eén van de voornaamste redenen (en eentje die |
13 |
13 |
Google, Facebook, ... allemaal klaarblijkelijk vergeten zijn) is dat een |
14 |
14 |
grondregel van /web development/ is dat je er niet van mag uitgaan dat de |
15 |
15 |
gebruiker JavaScript ondersteunt. |
16 |
16 |
|
17 |
17 |
*Client-side scripting (Css* (niet te verwarren met Cascading Style Sheets, CSS)) |
18 |
18 |
*mag enkel een strikt cosmetisch effect hebben op |
19 |
19 |
een website.* De functionaliteit gaat namelijk compleet verloren als de |
20 |
20 |
gebruiker geen ondersteuning biedt. |
21 |
21 |
|
22 |
22 |
Alhoewel het in de praktijk steeds neerkomt op "JavaScript (JS) dient vermeden te |
23 |
23 |
worden op het web", ga ik enkel spreken over "Client side scripting" (Css), |
24 |
24 |
omdat veel van de problemen die zich met JS zouden voordoen, zich eveneens |
25 |
25 |
zouden voordoen bij eender welke andere taal (Python, Clojure, ...), |
26 |
26 |
als die voor Css gebruikt zou worden. JS is sinds [[http://es6-features.org/][ES6]] een betere taal geworden, |
27 |
27 |
maar de "kwaliteit" van een taal is volledig irrelevant in deze discussie. Het |
28 |
28 |
bespreken van de faciliteiten die JS als programmeertaal biedt wordt in dit |
29 |
29 |
hoofdstuk dus achterwege gelaten. |
30 |
30 |
|
31 |
31 |
** Verschillende versies |
+ |
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 |
32 |
37 |
Alles wat netwerkgerelateerd is, moet zich houden aan vooraf opgelegde |
33 |
38 |
standaarden om correct te kunnen communiceren, en met het WWW is dat niet |
34 |
39 |
anders. |
35 |
40 |
|
36 |
41 |
Dit geeft opnieuw een reden om geen Css te gebruiken; op dit moment moet ik |
37 |
- | rekening houden met |
+ |
42 |
rekening houden met |
38 |
43 |
|
39 |
44 |
- De standaard van HTML(5) en welke tags ondersteund worden |
40 |
45 |
- De standaard van CSS(3) en de ondersteunde /properties/ binnen browsers |
41 |
46 |
|
42 |
47 |
Dit op zich is al een hele klus, en vereist *continu onderhoud van de software*. |
43 |
48 |
|
44 |
49 |
Stel dat men geen website ontwerpt, en /native software/ ontwikkelt, dan hoeft |
45 |
50 |
men enkel rekening te houden met de syntax van de programmeertaal; als het |
46 |
51 |
compileert kan het bij wijze van spreken gebruikt worden. |
47 |
- | |
+ |
52 |
|
48 |
53 |
Met Css moet men rekening houden met welke onderdelen van de gebruikte |
49 |
54 |
programmeertaal door de browsers wordt ondersteund, en dat is van vitaal belang, |
50 |
55 |
want als het script niet ondersteund wordt, wordt het simpelweg niet uitgevoerd, |
51 |
56 |
met als gevolg dat de website aan functionaliteit moet inboeten. |
52 |
57 |
|
53 |
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 |
54 |
59 |
nog terugvallen op een standaardwaarde. Dit is ook mogelijk, omdat geen van |
55 |
60 |
beide een programmeertaal is; men kán onderdelen vervangen zonder een al te |
56 |
61 |
groot risico te lopen om de site kapot te maken. |
57 |
62 |
|
58 |
63 |
** Turing-compleetheid |
+ |
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 |
59 |
69 |
De kracht van Css schuilt in de [[https://nl.wikipedia.org/wiki/Turingvolledigheid][Turing-compleetheid]]. Dit maakt het tot een |
60 |
- | programmeertaal waarin elk mogelijk computerprogramma geprogrammeerd kan worden. |
+ |
70 |
programmeertaal waarin elk mogelijk computerprogramma geprogrammeerd kan worden. |
61 |
71 |
|
62 |
72 |
De grote máár in deze kracht, is dat dat ook een hoop verantwoordelijkheid met |
63 |
73 |
zich meebrengt. Er kunnen fouten in de code sluipen, die de hele website kunnen |
64 |
74 |
doen vastlopen. |
65 |
75 |
|
66 |
76 |
JavaScript heeft dan ook nog de ongelukkige eigenschap dat het een enorm |
67 |
77 |
[[https://en.wikipedia.org/wiki/Strong_and_weak_typing][zwak getypeerde programmeertaal]] is; de taal doet in de achtergrond stille |
68 |
78 |
conversies tussen verschillende types, en geeft liever foute resultaten terug |
69 |
79 |
dan de programmeur te vertellen dat er een fout in de code zit. |
70 |
80 |
|
71 |
81 |
Deze punten gelden natuurlijk ook voor de /server-side/, maar dit is (in |
72 |
82 |
tegenstelling tot Css) absoluut onvermijdelijk om een dergelijke website te |
73 |
83 |
creëren. |
74 |
84 |
Daarnaast zijn er ook een hoop voordelen die men niet heeft bij Css: |
75 |
85 |
|
76 |
86 |
- Vrije keuze van programmeertaal (en mogelijkheid om te linken met andere |
77 |
87 |
software) |
78 |
88 |
- Zekerheid dat, als de software werkt op de ene /client/, die ook voor de |
79 |
89 |
andere /client/ werkt (zie [[Verschillende versies]]) |
80 |
90 |
|
81 |
91 |
HTML en CSS zijn geen "volwaardige programmeertalen". HTML is een opmaaktaal, |
82 |
92 |
men beschrijft er dus mee hoe bepaalde onderdelen van de website moeten worden |
83 |
93 |
voorgesteld; als een hyperlink, een paragraaf, ... |
84 |
94 |
CSS laat toe om de stijl van deze opmaak te definiëren, hoe moet een hyperlink |
85 |
95 |
uitzien, ... |
86 |
96 |
|
87 |
97 |
Een fout hierin heeft hoogstens een estetisch vervelend effect tot gevolg; veel |
88 |
- | browsers negeren fouten, en vervangen deze door /fallbacks/. Dit is niet |
+ |
98 |
browsers negeren fouten, en vervangen deze door /fallbacks/. Dit is niet |
89 |
99 |
mogelijk met een programmeertaal, een fout is een fout, en computers zijn niet |
90 |
- | in staat om een fout programma zelf te repareren. |
+ |
100 |
in staat om een fout programma zelf te repareren. |
91 |
101 |
|
92 |
102 |
** Onbeschikbaarheid |
93 |
103 |
Er zijn talloze manieren waarop de aangereikte code niet beschikbaar kan zijn |
94 |
104 |
voor de gebruiker, waardoor een website die afhangt van Css plots zonder |
95 |
105 |
waarschuwing niet meer werkzaam is. Een wilde greep uit de mogelijkheden: |
96 |
106 |
|
97 |
107 |
- De gebruiker heeft een zwakke computer |
98 |
108 |
- De computer heeft een slechte verbinding |
99 |
109 |
- De gebruiker surft via de GSM (een zwakke computer met een slechte verbinding) |
100 |
110 |
- De gebruiker heeft [[https://noscript.net][NoScript]], [[https://www.gnu.org/software/librejs/][GNU LibreJS]], of een andere extensie die Css blokkeert |
101 |
111 |
- De verbinding wordt onderbroken tijdens het inladen, en de pagina blokkeert |
102 |
112 |
terwijl het tevergeefs wacht op de rest van het script |
103 |
113 |
- De browser van de gebruiker ondersteunt simpelweg geen Css |
104 |
114 |
- De browser van de gebruiker ondersteunt niet de Css-implementatie die op de |
105 |
115 |
website gebruikt wordt (zie [[Verschillende versies]]) |
106 |
116 |
- De website laadt Css in van een externe website, maar er is een fout in het |
107 |
117 |
certificaat, en de browser weigert om de verbinding op te zetten |
108 |
118 |
|
+ |
119 |
|
109 |
120 |
Er hoeft maar één (en slechts één) van deze mogelijkheden op te treden, en *de |
110 |
121 |
volledige website is onbruikbaar*. |
111 |
- | |
+ |
122 |
|
112 |
123 |
Voor elk van deze mogelijkheden zou met Css een controle moeten worden |
113 |
124 |
ingebouwd, en dan weer voor elke mogelijkheid een oplossing bedacht (want "Het |
114 |
125 |
werkt niet en dat is de schuld van de gebruiker" is geen oplossing). |
115 |
126 |
|
116 |
127 |
Daarentegen, wat als er server-side een fout optreedt? \\ |
117 |
128 |
Veel webframeworks hebben ingebouwde /debugging tools/ die bij fouten direct de |
118 |
129 |
programmeur wijzen op de fout. Django is hier een goed voorbeeld van. |
119 |
130 |
|
120 |
131 |
Daarnaast biedt de betere webserver ook ingebouwde oplossingen om vaak |
121 |
132 |
voorkomende fouten af te handelen (zoals een HTTP 404). In dat geval kan er |
122 |
133 |
gemakkelijk een e-mail naar de ontwikkelaar gestuurd worden, of kan een log |
123 |
134 |
aangemaakt worden. En dit is vaak allemaal /ingebouwd/. |
124 |
135 |
|
125 |
136 |
** Uitgesteld resultaat |
126 |
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 |
127 |
138 |
is daarna verantwoordelijk voor het in elkaar steken van alle ontvangen |
128 |
139 |
onderdelen. |
129 |
140 |
|
130 |
141 |
Het handige hieraan, is dat elke browser zelf kan bepalen hoe, en in welke volgorde dit |
131 |
142 |
moet gebeuren, al dan niet in functie van bepaalde instellingen die de gebruiker |
132 |
143 |
zelf kan aanpassen (bv. geen afbeeldingen laden via 4G). |
133 |
144 |
|
134 |
145 |
Css interfereert op haast elk mogelijk niveau met deze werkwijze. Net omdat het |
135 |
146 |
niet op voorhand geweten is wat er zal worden aangepast, of wanneer de code |
136 |
147 |
ingeladen moet worden, is een browser verplicht om vanaf het eerste moment dat |
137 |
148 |
een script gedetecteerd wordt (bv. via de ~<script></script>~-tags), direct de |
138 |
149 |
code te evalueren en uit te voeren, ongeacht hoe lang het duurt of hoe zwaar het is. |
139 |
150 |
|
140 |
151 |
Css breekt ook met het gebruikelijke mantra dat de browser/gebruiker bepaalt hoe |
141 |
152 |
en wat wordt ingeladen. |
142 |
153 |
Vaak betekent dit ook dat de code geëvalueerd moet worden, op dat exacte moment, |
143 |
154 |
vooraleer de rest van de pagina getoond kan worden. \\ |
144 |
155 |
Dit is minder een probleem als Css gebruikt wordt voor het enige waarvoor het |
145 |
156 |
zou gebruikt moeten worden (cosmetische elementen), omdat alle code dan expres |
146 |
- | op het einde van het HTML-document kan worden ingeladen. De website is dan al |
+ |
157 |
op het einde van het HTML-document kan worden ingeladen. De website is dan al |
147 |
158 |
bruikbaar vooraleer de code ingeladen moet worden. \\ |
148 |
159 |
(Een groeiend aantal gebruikers blokkeert ook expres Css tijdens het surfen op |
149 |
- | het web, omdat de snelheidswinsten en sterk verhoogde privacy een waardige |
+ |
160 |
het web, omdat de snelheidswinsten en sterk verhoogde privacy een waardige |
150 |
161 |
afweging is voor een ietwat minder cosmetisch aangeklede website. Met andere |
151 |
162 |
woorden; zij stellen het resultaat uit voor onbepaalde duur.) |
152 |
- | |
+ |
163 |
|
153 |
164 |
Dit geeft vanzelfsprekend ook problemen als de code niet geoptimaliseerd is, en |
154 |
165 |
daar elke browser de aangereikte Css op een andere manier kan evalueren, is het |
155 |
166 |
onbegonnen werk om voor alle mogelijke implementaties handige optimalisaties |
156 |
167 |
door te voeren. Men beperkt zich natuurlijk meestal tot de populairste |
157 |
168 |
implementaties ([[https://en.wikipedia.org/wiki/WebKit][WebKit]] en [[https://en.wikipedia.org/wiki/Gecko_(software)][Gecko]]). |
158 |
169 |
|
159 |
170 |
_Maar je hoeft vanzelfsprekend niet te optimaliseren, als er geen code is om te optimaliseren._ |
160 |
171 |
|
161 |
172 |
Je zou kunnen zeggen dat deze redenering ook opgaat voor Joeni zelf, wat van |
162 |
173 |
Python gebruik maakt. Maar het gebruikte framework ondersteunt het |
163 |
174 |
[[https://docs.djangoproject.com/en/2.0/topics/cache/][cachen van pagina's]]. Dus eerder geëvalueerde code zal al op voorhand beschikbaar |
164 |
175 |
zijn. Daarbij komt dat de snelheid van een server naar wens kan worden vergroot, |
165 |
176 |
terwijl je bij de gebruiker er van moet uitgaan dat zijn/haar toestel traag is. |
166 |
177 |
De code van de server hoeft ook slechts voor één platform geoptimaliseerd te |
167 |
178 |
worden, dat van de server. |
168 |
179 |
|
169 |
180 |
Uiteindelijk is het resultaat van (foutief) Css-gebruik |
170 |
181 |
sowieso: *Een traag werkende website.* |
171 |
182 |
|
172 |
183 |
** Verlies van betekenis |
173 |
184 |
Een bepaalde /tag/ in HTML draagt een bepaalde betekenis. ~<a />~ betekent dat dit |
174 |
185 |
een hyperlink is, ~<body />~ betekent dat wat volgt getoond moet worden als de |
175 |
186 |
'inhoud' van de pagina, ~<p />~ duidt op een paragraaf, ... |
176 |
187 |
|
177 |
188 |
Deze betekenis wordt vaak door de browser ten volle benut; Alle links kunnen makkelijk |
178 |
189 |
op voorhand verzameld worden (i.e. Alles wat tussen ~<a />~ staat), wat tussen |
179 |
190 |
~<head />~ staat wordt niet getoond, ... |
180 |
191 |
|
181 |
192 |
*Betekenis opent deuren voor het impliciet infereren van informatie.* Dit is de |
182 |
193 |
reden waarom de tags in HTML (en vooral sinds HTML5) een aanduiding zijn voor |
183 |
194 |
wat de ingesloten data /betekent/; ~<article />~ is een artikel en kan dus los |
184 |
195 |
weergegeven worden van de rest van de pagina, ~<del />~ is data die niet |
185 |
- | meer relevant is, maar waarschijnlijk toch wel weergegeven moet worden. ~<ol />~ |
+ |
196 |
meer relevant is, maar waarschijnlijk toch wel weergegeven moet worden. ~<ol />~ |
186 |
197 |
is een geordende lijst, dus de volgorde van de data is van belang, in |
187 |
198 |
tegenstelling tot ~<ul />~. Er zijn ontelbare voorbeelden te vinden. |
188 |
199 |
|
189 |
200 |
Deze betekenis gaat volledig verloren als onderdelen van de website met Css |
190 |
201 |
worden "nagemaakt". ~<div onclick="hyperlink" />~ zal waarschijnlijk wel |
191 |
202 |
doorlinken naar een website, maar waar dat je in bv. FireFox met een |
192 |
203 |
middelmuisklik een ~<a />~ in een nieuw tabblad kunt openen, zal dit niet werken |
193 |
204 |
met Css. |
194 |
205 |
|
195 |
206 |
** Conclusie |
196 |
207 |
Het moge duidelijk zijn dat het gebruik van Css om zogenaamde /web apps/ te |
197 |
208 |
maken, fundamenteel een slecht idee is, dat meer problemen voortbrengt dan het |
198 |
209 |
oplost. Alle problemen die sommige websites proberen op te lossen met Css, zijn |
199 |
210 |
makkelijker op te lossen met slechts HTML en CSS (Cascading Style Sheets), en |
200 |
211 |
Client side scripting maakt soms de problemen zelfs erger. |
201 |
212 |
|
202 |
213 |
En zelfs al zouden alle bovenstaande punten onwaar zijn, dan nog is Joeni |
203 |
214 |
het bewijs dat Css geen vereiste is om werkende software te schrijven, die |
204 |
215 |
hoofdzakelijk via het WWW beschikbaar wordt gesteld. |
205 |
216 |
docs/thesis/huisstijl.org ¶
76 additions and 0 deletions.
View changes Hide changes
+ |
1 |
Een mooi uitgewerkte huisstijl is essentieel voor het creëren van een gevoel van |
+ |
2 |
samenhorigheid met verschillende entiteiten: Ze dienen ter onderscheiding van de |
+ |
3 |
rest, en <VERDERE INTRO> |
+ |
4 |
In Joeni wordt de huisstijl van de UHasselt verder uitgewerkt en gebruikt. In |
+ |
5 |
dit hoofdstuk wordt dit in detail uitgelegd, zodat het als basis kan dienen voor |
+ |
6 |
andere software. |
+ |
7 |
** Logo |
+ |
8 |
Joeni heeft tot doel als vervanging te dienen voor het Studentendossier en |
+ |
9 |
BlackBoard. In combinatie met de relatie tot de UHasselt, wordt voor Joeni het |
+ |
10 |
volgende logo gebruikt: |
+ |
11 |
|
+ |
12 |
#+CAPTION: Logo van Joeni |
+ |
13 |
#+NAME: fig:joeni-logo |
+ |
14 |
[[./images/joeni-logo.png]] |
+ |
15 |
|
+ |
16 |
Het logo is duidelijk afgeleid van het logo van de UHasselt. De driehoekjes zijn |
+ |
17 |
zo geplaatst dat het geheel lijkt op een HTML-element, om het verband als |
+ |
18 |
webapplicatie aan te duiden. |
+ |
19 |
|
+ |
20 |
*** UHasselt |
+ |
21 |
Het logo van de UHasselt is op verschillende plaatsen te vinden op de website. |
+ |
22 |
De meest prominente locatie is de titelbalk. |
+ |
23 |
|
+ |
24 |
#+CAPTION: Afbeelding van hoe het logo van de UHasselt in de titelbalk verwerkt is |
+ |
25 |
#+NAME: fig:uhasselt-titlebar |
+ |
26 |
[[./img/a.jpg]] |
+ |
27 |
|
+ |
28 |
Alhoewel de vorm van de driehoekjes lichtjes afwijkt van het echte logo, valt |
+ |
29 |
dit nauwelijks op. Het logo verwerken in de titel is mogelijk, omdat dit gewoon |
+ |
30 |
tekst is, meer specifiek, ▶ ~U+25B6 BLACK RIGHT-POINTING TRIANGLE~. |
+ |
31 |
|
+ |
32 |
Het voordeel hieraan is niet louter een besparing op bytes.[fn:utf-8] Omdat dit |
+ |
33 |
tekst is, zal de betere webbrowser in staat zijn om, afhankelijk van de |
+ |
34 |
achtergrond, het logo de juiste kleur te geven. Op de volgende afbeelding is dit |
+ |
35 |
effect duidelijk te zien, zeker in contrast met het logo dat de |
+ |
36 |
UHasselt-bibliotheek gebruikt. |
+ |
37 |
|
+ |
38 |
[fn:utf-8] Meestal wordt een logo meegestuurd die langs de titel wordt |
+ |
39 |
weergegeven in de titelbalk. Dat is niet fout, maar ze zijn wel een stuk groter in het |
+ |
40 |
aantal bytes. [[https://bibliotheek.uhasselt.be/sites/default/files/favicon.ico][Het logo dat UHasselt gebruikt op haar eigen website]] is 1,150 |
+ |
41 |
bytes groot, [[https://www.fileformat.info/info/unicode/char/25b6/index.htm][▶(×2) is slechts 3(×2) bytes groot]], dus een aanzienlijke verkleining van de |
+ |
42 |
benodigde ruimte. |
+ |
43 |
|
+ |
44 |
#+CAPTION: Vergelijking tussen logo via UTF-8/tekst en als afbeelding. Merk op hoe het logo van de bibliotheek praktisch onzichtbaar is bij de zwarte achtergrond. |
+ |
45 |
#+NAME: fig:utf8-better |
+ |
46 |
[[./img/a.jpg]] |
+ |
47 |
|
+ |
48 |
** Lettertype |
+ |
49 |
Op de website wordt als [[https://www.uhasselt.be/UH/Help-Studenten-Algemene_Help-Huisstijl/Lettertype.html][lettertype]] Verdana aangereikt. Dit strookt echter niet |
+ |
50 |
met het lettertype dat wordt gebruikt in de vele documenten die de UHasselt |
+ |
51 |
verspreidt, gaande van informatieboekjes over de studierichtingen tot de |
+ |
52 |
spandoeken die buiten aan het universiteitsgebouw worden opgehangen. |
+ |
53 |
|
+ |
54 |
Het wordt nergens vermeld, maar dit lettertype gelijkt volledig op |
+ |
55 |
[[https://design.ubuntu.com/font/][het Ubuntu-lettertype]], zoals de volgende vergelijking duidelijk aantoont. |
+ |
56 |
|
+ |
57 |
#+CAPTION: Vergelijking tussen lettertype gebruikt door UHasselt en Ubuntu-lettertype op voorbeeldtekst |
+ |
58 |
#+NAME: fig:font-comparison |
+ |
59 |
[[./images/font-comparison.png]] |
+ |
60 |
|
+ |
61 |
Dit lettertype wordt doorheen Joeni gebruikt voor het aanduide van belangrijke |
+ |
62 |
(kop)teksten. |
+ |
63 |
|
+ |
64 |
** Kleuren |
+ |
65 |
De UHasselt gebruikt in de informatiebrochures wel een kleurenpalet dat eigen |
+ |
66 |
lijkt te zijn aan de bepaalde faculteiten, maar verder wordt het haast nergens |
+ |
67 |
anders gebruikt. Vermoedelijk komt dit omdat nergens in de huisstijl wordt |
+ |
68 |
vermeld welke kleuren gebruikt kunnen worden voor wat.\\ |
+ |
69 |
Hieronder worden de verschillende kleurwaarden voor elke faculteit uiteengezet. |
+ |
70 |
Ze geven een eigen gezicht aan de documentatie binnen elke faculteit, en kunnen |
+ |
71 |
makkelijk gebruikt worden voor zowel voor- als achtergrondkleuren. |
+ |
72 |
|
+ |
73 |
#+CAPTION: Een kleurenpalet dat gebruikt kan worden voor de huisstijl van de UHasselt verder uit te bouwen |
+ |
74 |
#+NAME: fig:color-swatches |
+ |
75 |
[[./images/color-swatches.png]] |
+ |
76 |
docs/thesis/softwarekeuzes.org ¶
36 additions and 0 deletions.
View changes Hide changes
+ |
1 |
In dit hoofdstuk wordt dieper ingegaan op de verantwoording voor de gekozen |
+ |
2 |
software, en worden de mogelijke alternatieven besproken. |
+ |
3 |
** Softwareframework |
+ |
4 |
*** Django |
+ |
5 |
Voor het schrijven van Joeni heb ik uitgesproken gebruik gemaakt van |
+ |
6 |
[[https://www.djangoproject.com/][het Django-framework]]. |
+ |
7 |
**** Webframework |
+ |
8 |
Django is een framework gericht op het ontwikkelen van websites. Omdat Joeni |
+ |
9 |
hoort te dienen als een directe vervanging voor het Studentendossier en |
+ |
10 |
BlackBoard, zou een website bouwen de overgang het gemakkelijkst laten gebeuren. |
+ |
11 |
|
+ |
12 |
*** Python (3) |
+ |
13 |
Alhoewel er wel voor elke programmeertaal één of meerdere frameworks voor het |
+ |
14 |
maken van websites bestaan, ging de voorkeur uit naar Python. |
+ |
15 |
|
+ |
16 |
*** UTF-8 |
+ |
17 |
Joeni maakt uitsluitend gebruik van UTF-8 voor encodering van tekst.\\ |
+ |
18 |
Niet alleen is dit standaard voor strings in Python 3, het laat ook toe om het |
+ |
19 |
logo van de UHasselt in de titelbalk te verwerken, en zorgt ervoor dat alle |
+ |
20 |
teksten correct gespeld en opgeslagen kunnen worden. |
+ |
21 |
|
+ |
22 |
* Andere mogelijkheden |
+ |
23 |
Tegenover de gemaakte keuzes staan ook een hoop alternatieven die niet werden |
+ |
24 |
gebruikt. <IETS MEER> |
+ |
25 |
** Ruby (on Rails) |
+ |
26 |
Mijn ervaring met Ruby is simpelweg onbestaande; ik heb nooit in deze taal |
+ |
27 |
geprogrammeerd. De beperkte tijd die ik had voor de bachelorproef stond niet toe |
+ |
28 |
dat ik mij nog zou verdiepen in een nieuwe programmeertaal. |
+ |
29 |
** PHP |
+ |
30 |
Ongetwijfeld een van de meest gebruikte talen voor het schrijven van dynamische |
+ |
31 |
websites.\\ |
+ |
32 |
Het probleem is compleet het tegenovergestelde van [[Ruby (on Rails][Ruby]]; PHP ken ik zeer goed. |
+ |
33 |
Het is daarom dat ik dit niet beschouw als een goede keuze; de taal zit vol met |
+ |
34 |
beveiligingslekken, vertoont extreem raar gedrag dat niet voorkomt in Python, |
+ |
35 |
|
+ |
36 |