Weer een stuk herschreven

This commit is contained in:
Bram van der Veen 2015-11-19 22:08:15 +01:00
parent c0d00951ff
commit 9461a2a5a7
5 changed files with 53 additions and 58 deletions

View file

@ -1,6 +1,7 @@
#### Hoe werkt Werkmanrooster?
---
Welkom op de index van mijn profielwerkstuk. Vanuit hier kun je alle verschillende hoofdstukken en deelvragen bekijken en nalezen. Ik zou echt wel voorstellen om de artikelen te lezen op chronologische volgorde, want op die manier zou het het makkelijkste te lezen zijn.
Welkom bij mijn profielwerkstuk. Dit werkstuk bestaat uit een serie webpagina's die stap voor stap laten zien hoe Werkmanrooster werkt. Klik aan de link aan de onderkant van de pagina om naar de volgende pagina te gaan.
Bedankt voor het lezen!
---
<!--

View file

@ -1,11 +1,6 @@
##### Je gaat naar de website - Telefoonboek
---
Je bent wel gewend dat als je in je adresbalk in typt dat er dan een website op je scherm komt, gegeven dat je een beetje goed wifi hebt. Maar er gebeurd meer dan alleen je browser die weet waar hij moet zijn, en als een website soms niet werkt dan ligt het niet alleen aan dat je een streepje mist van je wifi.
De manier waarop het internet werkt is eigenlijk net zoals dat van telefoons. Als jij iemand wil bellen dan heb jij hun telefoonnummer weten. Meestal als je dit persoon een beetje goed kent, of je hebt je charmes er op afgelaten, dan heb je meestal het nummer van dat persoon wel bij de hand. Op het internet werkt dit net zo. Op het internet is zijn er ook een soort telefoonnummers genaamd "IP adressen". Dit bestaat uit 4 cijfers gescheiden met punten, die maximaal 255 kunnen zijn. (0.0.0.0 tot 255.255.255.255). Meestal word een IP adress geassociërd met "hacken" of andere illegale dingen. Het punt is, dat iedereen IP adressen gebruikt, alleen om het iederen makkelijker te maken hoef je ze nooit letterlijk in te typen.
Om terug te gaan naar telefoons, heb je ook soms de situatie waarin je het telefoonnummer van iemand niet hebt. Wat doe je dan? Je pakt een telefoonboek bij. Dit is een groot register van telefoonnummers en namen van mensen en bedrijven. Als je een naam van een bedrijf of van een persoon in je hoofd hebt en je kijkt in de telefoongids dan "vertaal" je als het ware de naam in een telefoonnummer.
Op het internet werkt dit ook zo, met een systeem genaamd "DNS" (Domain Name System) wat domeinnamen ([werkmanrooster.nl](http://werkmanrooster.nl)) vertaald naar een IP adres ([94.212.253.206](http://94.212.253.206/)). Dus iedere keer als je naar een website toe gaat gebeurd deze stap eerst, ook bij andere websites. Je hebt eigenlijk nog helemaal niet te maken gehad met de website zelf!
Iedereen gebruikt het internet dagelijks, en vaak zonder te weten wat er eigenlijk allemaal gebeurd achter de schermen. Een van de dingen die vrijwel het vaakste word uitgevoerd is het gaan naar een website. Wat veel mensen niet weten is dat het internet net zo werkt als dat wij onze telefoons gebruiken. Als jij je beste vriend of vriendin wil opbellen toets je niet hun naam in je telefoon in, maar hun telefoonnummer. Het internet bestaat uit vergelijkbare nummers genaamd `ip`-addressen.`ip`-addressen zijn het fundament van hoe computers met elkaar communiceren. Elke computer, smartphone en laptop die verbonden is met een netwerk heeft een `ip` adres. Websites hebben ook een `ip` adres. Een `ip` adres kan van `0.0.0.0` tot `255.255.255.255` varieren. Maar hoe weet jouw computer nou welk ip adres hij moet hebben? Dat gaat via het `DNS` systeem. `DNS` staat voor 'Domain Names System', wat dat systeem doet is het vertalen van een 'domain name' (een domein naam) zoals `werkmanrooster.nl` vertalen naar een `ip` adres (`85.214.232.210`). Op deze manier weet jouw computer waar hij moet zijn voor Werkmanrooster. Dit is handiger dan het `ip` adres uit je hoofd leren.
---
[Volgende (Op zoek naar je naam) >>](/opzoek)
[Volgende >>](/opzoek)

View file

@ -1,9 +1,13 @@
##### Opzoek naar je naam - De Werkmanrooster archiefkast
##### Opzoek naar je naam
---
Nadat je computer werkmanrooster.nl heeft gevonden via het "DNS" [telefoonboek](/intypen), maakt hij een verbinding met de website. Je zult nu [dit](http://werkmanrooster.nl) zien. Wat je als het volgende doet is je naam intypen om te kijken wat je rooster is. Je verwacht uiteraard dat de volgende pagina met je rooster laad binnen een halve seconde. Maar wat er eigenlijk gebeurd is veel gecompliceerder.
##### De Werkmanrooster archiefkast
In de eerste 0.2 seconden gebeurd er namelijk een kleine zoektocht naar jouw naam. Werkmanrooster beschikt namelijk over een grote archiefkast van namen. Namen van leerlingen, docenten en zelfs lokalen. Als je op enter hebt gedrukt gaat er een secretaresse bezig met het vergelijken van de naam die je hebt ingetypt en de namen in de archiefkast. Ze haalt alle namen er uit die overeenkomen met wat je hebt ingetypt. Aan het einde van de zoektocht is het de vraag hoeveel namen ze heeft gevonden. Heeft ze maar een gevonden dan is het simpel. Het rooster wordt gemaakt van dat persoon. Als er meerdere zijn gevonden zal ze [vragen](http://werkmanrooster.nl/rooster/Bram) welke van de gevonden mensen je het rooster wil zien. Als ze een dossier uit de archiefkast haalt ziet het er ongeveer zo uit.
Nadat je computer werkmanrooster.nl heeft gevonden via het [`DNS` telefoonboek](/intypen), maakt hij verbinding met de website. Je ziet de hoofdpagina van de website en typt je naam in. Je drukt op enter en de je rooster laadt in minder dan een seconde.
In die ene seconden zijn heel wat processen aan de gang om ervoor te zorgen dat jij je rooster te zien krijgt. Nu gaan we kijken naar hoe Werkmanrooster bijhoudt wie welk rooster heeft. Je hebt vast wel gehoord van een `database`, vast in een film of je favoriete serie. Een `database` is eigenlijk een grote digitale archiefkast waar informatie in zit. Maar hoe werkt dat dan? Laten we kijken naar een voorbeeld met een archiefkast.
Werkmanrooster beschikt over een grote archiefkast van leerlingen, docenten, klassen en lokalen. Als je op enter drukt gaat er een secretaresse bezig met het vergelijken van de naam die je hebt ingetypt en de namen in de archiefkast. Ze haalt alle namen er uit die overeenkomen met wat je hebt ingetypt. Aan het einde van de zoektocht heeft ze een bestand gevonden van een persoon waarnaar jij vroeg. Een bestand uit die archiefkast ziet er zo uit:
```json
Naam: Bram van der Veen
@ -14,9 +18,40 @@ In de eerste 0.2 seconden gebeurd er namelijk een kleine zoektocht naar jouw naa
Soort: Leerling
Rooster: roosters5.gepro-osi.nl/roosters/rooster.php?school=934&type=Leerlingrooster&afdeling=l_atheneum 6&leerling=16374
```
Voor de secretaresse gaat dus alles bij langs en kijkt of wat jij hebt gevraagd overeen komt met iets in een van de dossiers. Mocht je bijvoorbeeld "16374" aan haar vragen, dan zal zij mijn dossier alsnog pakken omdat mijn leerlingnummer 16374 is. Hetzelfde geld als je alleen de achternaam of voornaam doet. Het risico daarmee is, is dat je soms meerdere mensen vind met dezelfde voor- of achternaam, terwijl een leerlingnummer uniek is.
Heb je uiteindelijk een keuze gemaakt dan stuurt ze het dossier uit het archief naar de volgende balie waar het verder word verwerkt.
Wat de secretaresse doet is elk bestand nagaan en dit vergelijken met wat jouw zoekopdracht was. Als jij vraagt naar "Bram" dan zal ze alle Brammen pakken. Vraag jij bevoorbeeld naar "Atheneum 6" dan zal zij alle bestanden pakken die uit Atheneum 6 komen. Ze stuurt dan het gevonden bestand naar haar collega die het rooster zal opzoeken en uitprinten.
---
[Volgende (Verkrijgen en verwerken) >>](/verkrijgen)
##### Zoeken naar een naald in een naaldberg
Bij het intypen van `Bram van der Veen` zal het systeem [de informatie](http://werkmanrooster.nl/api/search?name=Bram van der Veen) vinden die daar bij hoort. Je ziet een duidelijke overeenkomst met het eerder genoemde bestand uit de grote archiefkast. Het verschil zijn wat vreemde tekens in en rond de informatie. Wat betekent dit allemaal? Eigenlijk staat er precies hetzelfde als in het eerder genoemde bestand, maar er zijn wat tekens aan toegevoegd zodat de computer het kan lezen. Een snelle uitleg:
```javascript
//In dit voorbeeld heeft naam_voor_de_data, de waarde "data".
{
//De ":" wil zeggen dat de een waarde word gebonden aan een variabele
//in dit geval "data" aan de "naam_voor_de_data" variabele.
"naam_voor_de_data": "data"
}
```
Rooster.io werkt hier net zoals de secretaresse. Hij gaat alle bestanden bij langs om te kijken of jouw zoekopdracht overeenkomt met een van de vele bestanden in de database. Zo'n bestand ziet er zo uit:
```javascript
//Een dataset voor de zoekopdracht "Bram van der Veen"
{
"id": "16374", //Leerlingnummer
"group": "A6A", //Groep waaraan de leerling behoort
"username": "16374bram", //De geschatte gebruikersnaam van de leerling
"name": "Bram van der Veen", //De hele naam van de leerling
"first_name": "Bram", //De voornaam van de leerling
"last_name": "van der Veen", //De achternaam van de leerling
"studentcategory": "l_atheneum 6", //Een variabele wat nodig is voor het opzoeken van het rooster.
"type": "leerling", //Een variable die bepaald of deze dataset een leerling is of iets anders.
"_id": "Mc5vtoIrhMM8e2dN",
//De link naar het rooster van de leerling.
"url": "roosters5.gepro-osi.nl/?school=934&type=Leerlingrooster&afdeling=l_atheneum 6&leerling=16374"
}
```
Het bestand is eigenlijk een groep variabeles die het systeem bij langs gaat. In dit geval komt `Bram van der Veen` overeen met de waarde van het variabele `name`. Maar hetzelfde geld als ik bijvoorbeeld alleen `Bram` of `van der Veen` intyp, het systeem zal alleen [meerdere ](http://werkmanrooster.nl/api/search?name=Bram)[mensen](http://werkmanrooster.nl/api/search?name=van der Veen) vinden met dezelfde waardes.
Als rooster.io meerdere mensen vindt voor dezelfde zoekopdracht dan maakt hij een lijst zodat de gebruiker kan kiezen uit welk van de mensen hij of zij het rooster wil zien. Als er maar één persoon gevonden wordt dan gaat rooster.io verder met de volgende stap, het rooster verkrijgen en verwerk
[Volgende >>](/verkrijgen)

View file

@ -1,31 +0,0 @@
##### Opzoek naar je naam - Zoeken naar een naald in een naaldberg
---
Bijvoorbeeld als je `Bram van der Veen` in typt zal het systeem [de informatie](http://werkmanrooster.nl/api/search?name=Bram van der Veen) vinden die daar bij hoort. Als je op de link klikt zul je verschillende waardes zien. Een waarde binnen een dataset word gedefineerd als :
```javascript
//In dit voorbeeld heeft naam_voor_de_data, de waarde "data".
{
//De ":" wil zeggen dat de een waarde word gebonden aan een variabele
//in dit geval "data" aan de "naam_voor_de_data" variabele.
"naam_voor_de_data": "data"
}
```
Wat hier belangrijk is, is dat je je beseft dat als je iets in typt dat rooster.io de verschillende waardes bij langs gaat om te kijken of ze overeen komen met de zoekopdracht.
Hier is een dataset zoals laten zien werd bij de eerste link in dit hoofdstuk.
```javascript
//Een dataset voor de zoekopdracht "Bram van der Veen" of "16374"
{
"id": "16374", //Leerlingnummer
"group": "A6A", //Groep waaraan de leerling behoort
"username": "16374bram", //De geschatte gebruikersnaam van de leerling
"name": "Bram van der Veen", //De hele naam van de leerling
"first_name": "Bram", //De voornaam van de leerling
"last_name": "van der Veen", //De achternaam van de leerling
"studentcategory": "l_atheneum 6", //Een variabele wat nodig is voor het opzoeken van het rooster.
"type": "leerling", //Of deze dataset een leerling is of iets anders.
"_id": "Mc5vtoIrhMM8e2dN",
//De link naar het rooster van de leerling. (Deze link is verkort en doet het niet)
"url": "roosters5.gepro-osi.nl/?school=934&type=Leerlingrooster&afdeling=l_atheneum 6&leerling=16374"
}
```
In dit geval komt `Bram van der Veen` overeen met de waarde van het variabele `name`. Maar hetzelfde geld als ik bijvoorbeeld alleen `Bram` of `van der Veen` in typ, het systeem zal alleen [meerdere ](http://werkmanrooster.nl/api/search?name=Bram)[mensen](http://werkmanrooster.nl/api/search?name=van der Veen) vinden met dezelfde waardes.
Als rooster.io meerdere mensen vindt voor dezelfde zoekopdracht dan maakt hij een lijst zodat de gebruiker kan kiezen uit welk van de mensen hij of zij het rooster wil zien. Als er maar één persoon gevonden wordt dan gaat rooster.io verder met de volgende stap.

View file

@ -1,6 +1,7 @@
#### Verkrijgen en verwerken - De volgende balie
#### Verkrijgen en verwerken
---
Je komt aan bij de volgende balie met het in je hand gegeven bestand van het persoon van wat je zoekt.
#### De volgende balie
Om terug te komen op het archiefkast voorbeeld, gaan we verder met de volgende balie. De secretaresse heeft het gevonden bestand gegeven aan haar collega die vervolgens opzoek gaat naar jouw rooster. Hij neemt het bestand in handen en kijkt ernaar.
```json
Naam: Bram van der Veen
Leerlingnummer: 16374
@ -10,17 +11,11 @@ Je komt aan bij de volgende balie met het in je hand gegeven bestand van het per
Soort: Leerling
Rooster: roosters5.gepro-osi.nl/roosters/rooster.php?school=934&type=Leerlingrooster&afdeling=l_atheneum 6&leerling=16374
```
Het persoon achter de balie pakt het dossier en kijkt naar de link naar het rooster. Hij gaat vervolgens naar de link op zijn computer en print het voor je uit. Hij stopt het in een mooi mapje voor je, zegt dat de volgende aan de beurt is en gaat weer terug aan het werk. Wat je nu in je handen hebt is je rooster, alleen in een mapje. Je zou in principe zelf naar de link kunnen gaan en je rooster bekijken, maar wie weet die link nou uit z'n hoofd. Plus het is makkelijker om gewoon naar de archiefkast te lopen en dan vervolgens te vragen naar je rooster. Het maakt het pad naar je rooster makkelijker door al die stappen *voor* je uit te voeren. Het eerste en eigenlijk grootste verschil tussen de twee rooster sites is de link en hoe makkelijk het is om naar de site te gaan en deze te navigeren. En het verschil is merkbaar, kijk alleen naar het verschil in ontwerp en de groote van de links.
```javascript
//De normale roostersite
"roosters5.gepro-osi.nl/roosters/rooster.php?school=934&type=Leerlingrooster&afdeling=l_atheneum 6&leerling=16374"
//Werkmanrooster
"werkmanrooster.nl/rooster/16374"
```
Dit is essentieel en makkelijk uitgelegd hoe werkmanrooster werkt, en waarom mensen het gebruiken.
Hij bekijkt het bestand en richt zich gelijk op de laatste waarde van het bestand `Rooster`. Hier staat namelijk een link achter met de locatie van jouw rooster. Hij gaat naar die link en print de webpagina uit. Vervolgens pakt hij het papier met jouw rooster en knipt elk uur uit en zet het rooster opnieuw in elkaar. Hij doet dit mooier, beter en handiger dan het orginele rooster.
---
[Volgende (Frequently Asked Questions) >>](#)
#### Roosters als templaten
Rooster.io gaat ook verder. Hij gaat verder door het bestand uit de database te verwerken. Hij doet hetzelfde als de collega in het verhaal hierboven. Hij knipt en plakt het rooster in een nieuw jasje. Hij gaat naar de link die is gegeven in het bestand en download het daar gevonden rooster als tekstbestand. Vervolgens gaat hij door dit tekstbestand heen om het rooster uit te vissen. Hij vertaalt dan deze door mensen te lezen informatie, in een soortgelijk [database bestand](http://werkmanrooster.nl/api/schedule?name=16374) zodat een computer het kan lezen. Dan stopt het systeem deze informatie in een "template". Een template is eigenlijk een soort koekjesvorm. Het zorgt ervoor dat de informatie die er in word gestopt er in een bepaalde vorm er uit komt. In ons geval is dat een webpagina.
[Volgende >>](#)