Jamy Timmermans 6de jaar industriële wetenschappen Schooljaar Mentor: D. De Koker

Maat: px
Weergave met pagina beginnen:

Download "Jamy Timmermans 6de jaar industriële wetenschappen Schooljaar 2013-2014 Mentor: D. De Koker"

Transcriptie

1 SpaceCP Jamy Timmermans 6de jaar industriële wetenschappen Schooljaar Mentor: D. De Koker

2 Literatuurstudie SpaceCP Jamy Timmermans 6de jaar industriële wetenschappen VTI Aalst Mentor: Daniel De Koker Industriële wetenschappen, informatica

3 Voorwoord SpaceCP Ik ben Jamy Timmermans en computers zijn mijn passie. Vooral de snelheid waaraan ze evolueren boeit me. Nadat ik circa 2011 mijn eigen website en eigen gameserver had, merkte ik dat het vrij vervelend en tijdrovend is om deze systemen online te zetten en te beheren. Toen kreeg ik een idee. Mijn visie: Een programma dat het instellen en vooral beheren van deze systemen pijnloos zou maken. Na in contact te komen met een zeer getalenteerde programmeur die dezelfde visie had vormden we een team en startte we ons eerste prototype: SpaceBukkit. Dit prototype werd een succes na de lancering in 2012 en werd een van de beste gratis programma s voor het beheer van Bukkit-gebaseerde servers. Omdat het een prototype was, waren er wel bepaalde beperkingen en was het ook enkel gericht naar Bukkit-servers. Hieruit kwam SpaceCP, eerst SpaceBukkit 2.0 geheten. SpaceCP zou de opvolger worden van SpaceBukkit en zou toelaten voor nog gemakkelijker beheer en nog meer flexibiliteit voor ons. Deze geïntegreerde proef gaat over de keuzes die we gemaakt hebben om SpaceCP op te bouwen. Van front-end design tot communicatie met de servers. Ik zou graag Luca Rager bedanken voor de ondersteuning bij het ontwerp van SpaceBukkit en SpaceCP. Ook wil ik alle mensen die ons geholpen hebben bij de ontwikkeling van SpaceCP bedanken voor hun constructieve input. En ten slotte zou ik mijn mentor meneer De Koker willen bedanken voor de goede opvolging en tips. De ontwikkeling van SpaceCP heeft mij veel bijgeleerd en ik hoop dat de lezer geboeid mag worden met dit werkstuk.

4 Inhoudsopgave Lijst van figuren iv Inleiding 1 1 Het ontwerp Een verbeterde versie van SpaceBukkit Wat is SpaceBukkit? Wat ontbreekt er in SpaceBukkit? SaaS: SpaceCP as a service Modulair Games Addons Volledig aanpasbaar De uitwerking van SpaceCP Keuze van de programmeertaal Wat is Node.JS? Gebaseerd op de V8 Javascript engine Evented IO Modulair WebSockets Database SQL SQL versus NoSQL UI: De user interface of gebruikersinterface Het Compound MVC framework ii

5 INHOUDSOPGAVE Model Controller View Het opbouwen van het modulaire systeem De module repository De module loader De front-end code RequireJS AngularJS jquery en jquery UI Communicatie met de gameserver Wat is RemoteToolkit? De RemoteToolkit API De SpaceCP RTK module Besluit Gebruiksscenarios De server met een klein aantal spelers De matig populaire server Het grote server netwerk Het server hosting bedrijf Besluit 23 Appendices 24 A Pakket definitie 25 B Pakket lengte 26 Bibliografie 27 iii

6 Lijst van figuren 1.1 Het SpaceBukkit logo Het SpaceCP logo Het Node.JS logo Twee oude SpaceCP designs Oude versie van het SpaceCP design Het uiteindelijke SpaceCP design Een typisch MVC schema Het RequireJS logo Het AngularJS logo Het jquery logo iv

7 Inleiding Serverbeheer is lang een zware taak geweest die enkel uitgevoerd werd door mensen met een speciale opleiding. Met de komst van online spelletjes zoals Minecraft en Team Fortress 2 willen nu ook minder technisch aangelegde mensen hun eigen servers online zetten. Dit proces gaat vaak gepaard met nachten lang op forums zoeken om een bepaalde functie te activeren of om een foutmelding op te lossen. XereoNet is een internationaal team van software ontwikkelaars, waaronder ik, die vinden dat serverbeheer gemakkelijker kan. Ons eerste project was een webapplicatie 1 die het beheer van Minecraft servers omzet naar een gemakkelijk te gebruiken website. Dit hebben we SpaceBukkit gedoopt. Als eerste project was SpaceBukkit wel vrij gelimiteerd in functionaliteit en uitbreidbaarheid. Als tweede project zijn we begonnen aan SpaceCP, waarover ik het ga hebben in deze scriptie. SpaceCP is de opvolger van SpaceBukkit en is volledig herschreven om modulair en uitbreidbaar te zijn. Deze nieuwe webapplicatie heeft als voordeel dat je meerdere spellen kan beheren vanuit dezelfde interface. Ook het gebruik van nieuwe technologieën zoals WebSockets en NodeJS laten toe dat gegevens volledig automatisch worden geüpdatet. Mijn onderzoeksvraag luidt: Hoe is SpaceCP opgebouwd en ontworpen?. Ik ga het vooral hebben over de verschillende elementen die van SpaceCP een zeer krachtig framework 2 maken. In het eerste deel leg ik het ontwerp van SpaceCP uit. In het tweede deel wordt dit ontwerp dan uitgewerkt in verschillende onderdelen. Uiteindelijk geef ik in het laatste deel nog enkele gebruiksscenarios 3 voor SpaceCP. 1 Een webapplicatie is een programma dat je kan gebruiken vanuit je webbrowser. Je hoeft deze dus niet te installeren op je pc. 2 Raamwerk: Een schematisch plan dat nog verder moet worden ingevuld. 3 Een voorbeeld van hoe een product gebruikt wordt. 1

8 LIJST VAN FIGUREN Het geheel van mijn GIP is online te vinden op Daar zijn foto s te vinden op volledige grootte, een video van SpaceCP in gebruik en ook verwijzingen naar al mijn bronnen. 2

9 Hoofdstuk 1 Het ontwerp 1.1 Een verbeterde versie van SpaceBukkit Figuur 1.1: Het SpaceBukkit logo - SpaceBukkit, zie (21) Wat is SpaceBukkit? SpaceBukkit is een controlepaneel voor Bukkit 1 servers. Het doel was om een gratis controlepaneel te ontwikkelen te dat professioneel oogt en alle belangrijke functies bevat om een server te beheren. Samen met teamleden heb ik in 2012 dit controlepaneel gerealiseerd. SpaceBukkit is heel onverwachts snel gegroeid. De vraag naar extra functies was zeer groot, waaronder een simpelere installatie en verbeteringen voor server hosting providers. SpaceBukkit was niet geschreven met deze functies in het achterhoofd dus leek de beste oplossing alles te herschrijven. Er is dan besloten om ontwikkeling aan SpaceBukkit stop te zetten en volledig te gaan voor de herschreven versie, SpaceCP. 1 Bukkit is een verbeterde versie van de server die gebruikt wordt voor het spel Minecraft. 3

10 1.2 SaaS: SpaceCP as a service Wat ontbreekt er in SpaceBukkit? SpaceBukkit was een proof-of-concept en was niet fantastisch georganiseerd. Vele onderdelen werden er tussendoor bijgevoegd en hierdoor had hele controlepaneel geen structuur. Door gebrek aan die structuur werd het onderhouden van SpaceBukkit een zware taak. Hierdoor zijn belangrijke onderdelen achterwege gebleven. De meest prominente staan in de onderstaande lijst. Real-time data Meer gericht naar hosting providers 1 Berichten Meldingen Een API Uitbreidingen 1.2 SaaS: SpaceCP as a service SpaceCP moet meer gericht zijn naar hosting providers dan SpaceBukkit. Er is wat rondgevraagd, en vele hosting providers willen gemakkelijk aan het paneel en de server van hun klanten kunnen om hulp te leveren. Om dit het gemakkelijkste te verwezenlijken werd er beslist om het SpaceCP paneel te laten uitvoeren van één centrale server van de host. Zo kunnen ook statistieken over het gebruik van de servers bijgehouden worden en kan er rechtstreeks gecommuniceerd worden met de klant. SaaS staat eigenlijk voor Software as a Service, deze term wordt gebruikt als software wordt gehosting provider in de cloud 2. 1 Een hosting provider is iemand die servers verhuurt. 2 Software in de cloud zijn programma s die niet worden uitgevoerd op de computer van de gebruiker, maar op servers van de ontwikkelaar. 4

11 1.3 Modulair 1.3 Modulair SpaceCP moet modulair zijn. Dit om andere ontwikkelaars toe te laten extra pagina s of games toe te voegen. Om dit te verwezenlijken zijn er 2 categorieën van modules voor het paneel: Games In SpaceCP kunnen er extra games of spelen toegevoegd worden. Zo differentieert het paneel zich van andere controle panelen die zich vaak focussen op één game. De ontwikkeling van het paneel start met Minecraft, maar wordt, nadat er een goede fundering is, ook uitgebreid naar andere spelen zoals Team Fortress 2, Garrys Mod, en vele anderen Addons Addons zijn onderdelen van games, een game kan meerdere addons bevatten. Een addon is best te zien als een pagina van een game. Zo is de pagina waar de spelers van een Minecraft server zichtbaar zijn, de addon players van de game bukkit Volledig aanpasbaar Gebruikers kunnen voor hun server modules gemakkelijk in en uitschakelen en enkel de pagina s tonen die voor hun belangrijk zijn, zo kunnen ze ook nieuwe addons downloaden voor hun server. 5

12 Hoofdstuk 2 De uitwerking van SpaceCP Figuur 2.1: Het SpaceCP logo - SpaceCP, zie (22) Een webapplicatie ontwikkelen is niet eenvoudig. Er moet rekening gehouden worden met verscheidene aspecten. Veel van deze aspecten hebben rechtstreeks impact op hoe de gebruiker de applicatie ervaart. Anderen zijn volledig onzichtbaar voor de gebruiker maar gaan wel gepaard met een snelheidswinst. In dit hoofdstuk wordt uitgelegd welke beslissingen er gemaakt zijn en waarom. 2.1 Keuze van de programmeertaal Bij SpaceBukkit leek PHP de enige logisch keuze, vele sites gebruiken het en het had een goede reputatie. Maar recent zijn er nog andere programmeertalen bijgekomen die web ontwikkeling toelaten, waaronder Node.JS, Ruby, Python en nog vele anderen. Bij SpaceCP is er gekozen om Node.JS te gebruiken als programmeertaal. In de onderstaande tabel staan de grootste verschillen tussen PHP en Node.JS. 6

13 2.2 Wat is Node.JS? PHP Client en server gebruiken verschillende programmeertalen Code wordt synchroon uitgevoerd Code wordt enkel uitgevoerd bij een request Een verbinding per instantie Node Client en server gebruiken dezelfde programmeertaal Code wordt asynchroon uitgevoerd Code wordt altijd uitgevoerd Duizenden verbindingen per instantie 2.2 Wat is Node.JS? Figuur 2.2: Het Node.JS logo - Node.JS, zie (11) Gebaseerd op de V8 Javascript engine Javascript is de programmeertaal die gebruikt wordt om webpaginas dynamischer te maken. Om een paar voorbeelden te geven, in Hotmail of Gmail wordt Javascript gebruikt om s te openen en te verzenden en op Facebook wordt het verzenden van berichten afgehandeld door Javascript. Javascript is niet meer weg te denken van het internet. Hierdoor zijn vele webbrowsers bezig met het verbeteren van hun Javascript engines 1. De V8 Javascript engine wordt gebruikt in de Chrome webbrowser van Google. Bij het maken van V8 is er veel aandacht gegaan naar de snelheid. Omdat het V8 project open-source 2 is, is het gebruikt om Node op te bouwen. Het grote voordeel van deze keuze is dat er veel code van de server kan worden hergebruikt op de client. Dit spaart veel tijd uit. Ook moet er maar één programmeertaal gekend zijn om te kunnen programmeren op zowel de server als op de client, beide gebruiken Javascript. 1 De Javascript engine in een browser is het deel dat de Javascript code op de pagina leest en uitvoert. 2 Open source software is software dat door iedereen gratis gebruikt, gemodificeerd en gedeeld mag worden. 7

14 2.2 Wat is Node.JS? Evented IO Node is gebouwd op het principe dat alle input en output tijd in beslag neemt. Gegevens die van het netwerk komen kunnen langer duren om aan te komen dan gegevens die van de harde schijf afkomstig zijn, zoals te zien is op de bovenstaande afbeelding. In conventionele programmeertalen wacht de code dan met verder uit te voeren en blokkeert heel het proces. Als er nog een request aankomt maakt de server gewoon een nieuw proces aan om deze nieuwe request te beantwoorden. In Node is er maar één proces, dus als er een request aankomt dat wat langer duurt kunnen er geen andere request worden beantwoord. Node lost dit op door gebruik te maken van callback functies. Dit zijn functies die worden opgeroepen wanneer een opdracht voltooid is. Dit heet men non-blocking of asynchrone IO. Anders gezegd, input/output die het hoofdproces niet blokkeert. Stel dat gebruiker A een bestand aanvraagt, dan zal Node in de achtergrond beginnen dat bestand te lezen in een ander proces. Als ondertussen gebruiker B wat info aanvraagt dat al in het geheugen staat kan Node onmiddellijk reageren op gebruiker B terwijl het bestand voor gebruiker A nog geladen wordt. Als dan uiteindelijk het bestand geladen is zal Node de callback functie uitvoeren voor gebruiker A en dan zal gebruiker A zijn bestand ontvangen. Dit is een heel goed systeem om geheugen te besparen, in tegenstelling tot Apache 1 die voor elke request een nieuw proces creëert en daarmee heel veel geheugen gebruikt. Asynchroon programmeren vergt wel een verandering in denkpatroon omdat instructies niet opeenvolgend uitvoeren. Hieronder heb ik een codevoorbeeld om het bestand contactenlijst.txt op te halen met Node. Het commando console.log schrijft de tekst tussen de haakjes uit naar het scherm. // In Node var bestand = "contactenlijst.txt"; console.log("we gaan een bestand laden..."); fs.open(bestand, "r", function (fout, inhoud) { if (fout) throw fout; // Doe iets met het bestand console.log("het bestand is geladen!"); }); 1 Een server die PHP code kan uitvoeren. 8

15 2.2 Wat is Node.JS? console.log("de code wordt verder uitgevoerd zonder onderbreking."); Dit wordt weergegeven op het scherm: > We gaan een bestand laden... > De code wordt verder uitgevoerd zonder onderbreking. > Het bestand is geladen! De functie in het commando fs.open wordt pas uitgevoerd als het bestand geladen is, de rest van de code kan dus gerust verdergaan. In het volgende voorbeeld doen we hetzelfde met PHP. Hier kan je iets naar het scherm schrijven door middel van het echo commando. <?php // In PHP echo We gaan een bestand laden... ; $inhoud = file_get_contents( contactenlijst.txt ); echo Het bestand is geladen! ; echo De code voert echter niet verder uit tijdens het laden. ;?> Hier zal het volgende zichtbaar zijn op het scherm: > We gaan een bestand laden... > Het bestand is geladen! > De code voert echter niet verder uit tijdens het laden. Hier stopt het programma volledig wanneer het bestand geladen wordt. Het asynchrone systeem houdt deze tussenpozen bruikbaar Modulair Node is ook modulair opgebouwd, dit om uitgebreide taken op te delen in kleinere sub-modules. Hierdoor is de code veel leesbaarder en veel beter onderverdeeld. Om het nog te verbeteren heeft Node ook een package repository 1. Deze repository heet NPM 2 en is zeer krachtig. Dankzij NPM is het zeer gemakkelijk om modules te installeren en te gebruiken. 1 Een plaats waar modules worden opgeslagen en van gedownload kunnen worden. 2 NPM: Node Package Manager. 9

16 2.3 Database WebSockets WebSockets is een geavanceerde technologie die toe laat om een interactieve verbinding te openen tussen de browser van de gebruiker en de server. Met deze verbinding kunnen er berichten en events van en naar de server gestuurd worden, zonder dat de client hier de hele tijd achter moet vragen. Dit in tegenstelling tot HTTP 1 dat gebaseerd is op requests. Dit is zeer goed voor realtime applicaties en games. Met deze WebSockets kunnen er gegevens zoals een chat of statistieken in realtime worden weergegeven op de client. Iets wat met AJAX 2 anders tot een hele seconde vertraagt zou zijn. WebSockets werken niet alleen met Node en zijn ook bruikbaar in PHP, maar dit werkt niet zo gemakkelijk omdat PHP scripts gebaseerd zijn op requests, en niet op events zoals Node. 2.3 Database Een database is een programma dat gegevens bijhoudt voor de applicatie. Om gegevens correct op te kunnen slaan in een database moet er op voorhand bepaald worden welke gegevens er worden opgeslagen in de database. Het opbouwen van een database is geen eenmalige taak. Naarmate de applicatie groeit en er extra functies worden aan toegevoegd, zal de database ook aangepast moeten worden om deze extra gegevens op te slaan. Er zijn veel verschillende databaseprogramma s die allemaal hun eigen karakteristieken en toepassingen hebben. Ze kunnen wel opgedeeld worden in twee categorien: SQL en NoSQL SQL SQL staat voor Structured Query Language en is de taal waarmee je met een SQL database communiceert. Een van de meest gekende voorbeelden van een SQL database is MySQL. MySQL is de meest gebruikte database voor web ontwikkeling. 1 HTTP is het protocol dat gebruikt wordt om webpagina s, foto s etc. te laden van een server. 2 Een systeem om HTTP requests uit te voeren zonder de pagina opnieuw te moeten laden. 10

17 2.4 UI: De user interface of gebruikersinterface SQL versus NoSQL Met de opkomst van NoSQL databases is er veel debat rond welk type database beter is. Als men het heeft over SQL versus NoSQL wordt er eigenlijk bedoeld, relationele databases versus niet-relationele databases. Elk van beide heeft zijn voor- en nadelen. Bij niet-relationele databases wordt er niet gecontroleerd of gegevens van een bepaald datatype zijn wanneer ze worden opgeslagen, dit gebeurt wel bij relationele databases. Deze controle is niet noodzakelijk, maar als er een fout is in de programmacode die de database uitleest zou er wel eens een probleem kunnen ontstaan. De relationele databases zijn vaak opgedeeld in meerdere tabellen die aan elkaar gelinkt zijn aan de hand van relaties. In niet relationele databases staat alle informatie in een document. Dit heeft als resultaat dat de relationele databases vaak properder ogen, maar snel heel onoverzichtelijk worden als er veel informatie wordt in opgeslagen. In niet-relationele databases staat alle informatie in één document. Op het eerste zicht oogt die niet even proper, maar alle informatie is in een oogopslag terug te vinden. Voor SpaceCP is er gekozen voor een niet-relationele database, voornamelijk omdat het makkelijker werkt vanuit Javascript. 2.4 UI: De user interface of gebruikersinterface De gebruikersinterface is één van de belangrijkste elementen van een webapplicatie. Het is het onderdeel waar de gebruiker rechtstreeks in contact mee komt. Als deze niet proper en overzichtelijk oogt zal de gebruiker minder neiging hebben om de applicatie verder te gebruiken. Bij SpaceCP is er veel tijd gestoken in het creëren van een goede gebruikersinterface die, proper en professioneel oogt, in het ruimte thema past en flexibel genoeg is om de addons in te verwerken. De volgende afbeeldingen laten zien hoe er van twee uitersten uiteindelijk een professioneel ogende gebruikersinterface is gekomen. Vergrootte versies van deze foto s zijn ook te vinden op mijn website: 11

18 2.4 UI: De user interface of gebruikersinterface Figuur 2.3: Twee oude SpaceCP designs - Het linkse design is iets wat meer speels en het rechtse iets wat professioneler. Figuur 2.4: Oude versie van het SpaceCP design - Door plaatsgebrek is voor dit design niet geopteerd. 12

19 2.5 Het Compound MVC framework Figuur 2.5: Het uiteindelijke SpaceCP design - Het resultaat van één jaar lang het design aan te passen. 2.5 Het Compound MVC framework Om het ontwikkelen van een webapp iets te vergemakkelijken kan er gebruik gemaakt worden van een zogenaamd MVC framework. Dit is een stukje software dat web requests omzet naar een vooraf bepaald systeem. MVC staat voor Model-View-Controller en bepaald de 3 belangrijkste componenten. Op de onderstaande afbeelding zie je ook een dispatcher staan, deze zorgt ervoor dat de opgevraagde pagina door de juiste controller verwerkt wordt Model Het model is de gegevenslaag van een MVC framework. Hierin worden gegevens zoals gebruikersgegevens, servergegevens, etc. opgeslagen Controller De controller voert acties uit die de gebruiker heeft opgevraagd. De controller heeft toegang tot het model om gegevens op te vragen. 13

20 2.6 Het opbouwen van het modulaire systeem Figuur 2.6: Een typisch MVC schema - Een schema van hoe een request afgehandeld word door een MVC framework. Nadat de gegevens zijn verwerkt zal de controller de respectievelijke view updaten View De view is een sjabloon van een webpagina, de controller vult bepaalde variabelen in in de view, die dan wordt weergegeven aan de gebruiker. 2.6 Het opbouwen van het modulaire systeem Om ervoor te zorgen dat SpaceCP uitgebreid kan worden is er een modulair systeem opgebouwd geweest. Dit modulair systeem moet de installatie van modules vergemakkelijken en ook automatisch updates installeren. Het is opgedeeld in twee stukken, de module repository en de module loader De module repository Modules zijn eigenlijk kleine pakketten in een gecomprimeerd formaat dat alle benodigde bestanden bevat. Zoals kort aangehaald in het vorige hoofdstuk, zijn er twee types modules, de games en de addons. Een game kan op zichzelf geen pagina s toevoegen aan het paneel, maar voegt wel een 14

21 2.7 De front-end code API toe om te communiceren met dat type server. Optioneel kunnen er ook een paar acties worden toegevoegd om het gebruik van de API te vergemakkelijken. Een addon is afhankelijk van een game, dit wordt bepaald in een van de configuratiebestanden in het pakket. In de addon staat een bepaalde pagina, die pagina heeft een controller en één of meerdere views. Deze views bepalen een enkele pagina in SpaceCP. De modules en games worden opgeslagen op een centrale repository waar iedereen van kan downloaden. De modules die op de repository komen worden wel eerst gecontroleerd door het SpaceCP team om ervoor te zorgen dat de modules geen risico vormen voor het paneel De module loader Dit onderdeel van SpaceCP is geschreven zodat we games en addons kunnen installeren en updaten zonder SpaceCP uit te moeten schakelen. Dit doen we door wat aanpassingen te maken aan het MVC framework. 2.7 De front-end code SpaceCP heeft redelijk veel front-end code, dit is Javascript code die op de browser van de gebruiker wordt uitgevoerd. Deze code is vooral voor de verbinding met de server via WebSockets, het plaatsen van de ontvangen gegevens op de pagina, de animaties etc. Er worden veel aparte libraries gebruikt in SpaceCP. Deze libraries versnellen de ontwikkeling door veelgebruikte functies te versimpelen, of door nieuwe functies toe te voegen. In dit deel ga ik het hebben over de meest prominente libraries gebruikt in SpaceCP RequireJS RequireJS is een Javascript bestand lader. Het verschil tussen het gewoon laden van Javascript bestanden en het laden via RequireJS is dat RequireJS alles asynchroon laadt. Dit heeft als resultaat dat de pagina niet blokkeert bij het laden van de bestanden. Ook zijn alle bestanden geïsoleerd van elkaar, dit maakt het hele systeem veiliger 15

22 2.7 De front-end code Figuur 2.7: Het RequireJS logo - RequireJS, zie (2) en meer gestructureerd. Het idee van RequireJS is om de applicatie op te delen in modules die andere modules laden om taken uit te voeren. Uiteindelijk zijn er dan 20 bestanden in plaats van 1, wat niet optimaal is om te laden. Hiervoor is een een onderdeel in RequireJS dat alle deel-modules compileert tot één module en dat uiteindelijke bestand wat kleiner maakt AngularJS Figuur 2.8: Het AngularJS logo - AngularJS, zie (6) HTML is een zeer goede taal om statische pagina s op te bouwen, maar er is geen ingebouwd systeem om de gegevens op de pagina s dynamisch te maken. AngularJS is een Javascript library dat dit mogelijk maakt aan de hand van directives. Deze attributen kan je in de pagina invoegen en zo de pagina dynamisch te maken. Angular staat bekend als een model-view-view-model framework, wat gelijkaardig is aan een MVC framework, enkel dat hierbij 2-way data binding is toegevoegd en de controllers eruit gehaald zijn. Bij een MVC framework zet de controller de gegevens in de view en toont dan de view aan de client. Als gegevens aangepast worden moeten we die op een andere manier terugsturen naar het model. Dit is een heel omslachtig systeem. Het MV-VM systeem van Angular werkt op een manier zodat gegevens die op de pagina worden aangepast automatisch ook worden geüpdated in het model. dit noemt men 16

23 2.8 Communicatie met de gameserver 2-way data binding, omdat de gegevens in beide richtingen aan elkaar verbonden zijn jquery en jquery UI Figuur 2.9: Het jquery logo - jquery, zie (12) jquery is een veel gebruikte library die het makkelijker maakt om DOM 1 manipulatie, animaties, AJAX en andere veelgebruikte functies uit te voeren. Dit door alles te organiseren in een makkelijk bruikbare API die universeel is in alle browsers. jquery is uitbreidbaar met allerhande plug-ins die kleine en grote zaken simpeler maken. jquery UI is een van deze plug-ins die veel interface elementen toevoegen aan je applicatie. 2.8 Communicatie met de gameserver Om gegevens van en naar de gameserver te sturen moet er een plug-in of module genstalleerd worden dat gegevens kan sturen en ontvangen. Hiervoor wordt gebruik gemaakt van RemoteToolkit Wat is RemoteToolkit? RTK is een server wrapper 2 en plug-in waarmee via een API 3 opdrachten en gegevens kunnen worden gestuurd naar de server. Ook kan de server hiermee vanop afstand op en afgezet worden. De ontwikkelaar van RTK werkt ook mee aan SpaceCP en is al even bezig met het 1 DOM: Document Object Model, dit is de interne interpretatie van de pagina, gebruikt om de pagina te renderen. 2 Een server wrapper is een programma dat server software uitvoert en beheert. 3 API: Application programming interface 17

24 2.8 Communicatie met de gameserver maken van een nieuwe versie van RTK, versie 11. Deze nieuwe versie wordt gebruikt voor SpaceCP omdat er een nieuwe API beschikbaar is die toelaat om events die op de gameserver gebeuren, door te sturen. Dit is niet mogelijk in de vorige versie van RTK De RemoteToolkit API De API in RTK is een zogenaamde persistence, evented API. Persistence wil zeggen dat het communicatiekanaal openblijft voor extra gegevens zoals events. De communicatie gaat over een TCP socket verbinding. Pakketten die over deze verbinding gaan hebben een bepaalde vorm, dit noemt men de pakket definitie. Als pakketten zich niet aan deze vorm houden kunnen we ze niet lezen. Deze definitie is te vinden in bijlage A. De eerste 2 delen zijn constanten om de integriteit van het pakket te controleren. De eerste 4 bytes zijn altijd 0x of omgezet naar tekst IPCR. Als dit niet zo is kunnen we aannemen dat het pakket ofwel niet compleet is ofwel nog een deel bevat van het vorige pakket. Hierna komt de endianness constant, dit is 1 byte 1. De endianness van een waarde bepaald hoe deze is opgeslagen in het geheugen, bij little-endian is de minst significante byte opgeslagen in het laagste geheugen adres. Bij big-endian is het dan het omgekeerde, de meest significante byte is opgeslagen in het laagste geheugen adres. De beste manier om meest en minst significante byte te begrijpen is door een nummer te nemen, bijvoorbeeld 123. Hierbij weten we dat de 1 het meeste impact heeft op de waarde van het nummer. Dit is dan het meest significante nummer. 123 wordt dus in het alledaagse leven geschreven als big-endian, omdat het meest significante nummer eerst staat. Als je dit als little-endian wilt schrijven zou dit resulteren in 321 waar het minst significante nummer eerst wordt geschreven, hier het nummer 3. In de volgende byte staan gegevens over het pakket zelf, de eerste bit 2 is een bit die weergeeft of het pakket geëncrypteerd is. De tweede bit is een waarde om weer te geven of de sessie mag beëindigd worden, als deze op 1 staat zal RTK die sessie afsluiten. de volgende 6 bits is de waarde die weergeeft met welke versie van de API dit pakket gemaakt is. 1 1 byte is 8 bits. 2 Een bit is een computerterm voor waarde in het 2-delig talstelsel. Die waarde kan ofwel 0 (onwaar) ofwel 1 (waar) zijn. 18

25 2.8 Communicatie met de gameserver Hierna komen we aan de access key. Dit is de sleutel die bij een ongeëncrypteerd pakket controleert of het wel van een geautoriseerde bron komt. Dit is de SHA256 1 van de gebruikersnaam, het wachtwoord en de salt. De volgende twee variabelen zijn enkel voor geëncrypteerde pakketten, om ervoor te zorgen dat de pakketten correct geëncrypteerd worden. Hieronder komt het belangrijke gedeelte. De gegevens van het pakket. Eerst en vooral, de session id, elk verzonden pakket heeft een andere session id om ervoor te zorgen dat geen dubbele pakketten worden verzonden. Hierna is er de lengte van het data block, dit komt later aan bod. Het volgende onderdeel is de lengte van de methode en de methode zelf, die bepaalt welke actie je wilt uitvoeren. Hierop volgen de parameters, dit zijn gegevens om instellingen mee te sturen met het pakket. Ten laatste is er dan het data blok, dit is waar extra gegevens worden in opgeslagen. Met deze definitie kan iedereen een programma schrijven dat kan communiceren met RemoteToolkit. Voor SpaceCP is eer ook een stuk code geschreven om met RTK te communiceren. Deze code is te vinden op NPM (28). Om deze pakketten te lezen kan er op twee manieren te werk gegaan worden: Aannemen dat het pakket al compleet is aangekomen en één voor één de gegevens uitlezen, of eerst controleren of het pakket volledig is door de lengte te berekenen. Hieronder wordt de berekeningen beschreven die nodig zijn on de lengte te berekenen. De Javascript code die deze berekening uitvoert is te vinden in bijlage B. Als de eerste manier gekozen wordt zal er voor elke lijn code ook een controle moeten zijn opdat er niet te veel gelezen wordt 2. Voor de tweede manier is er een functie nodig die de lengte van het pakket berekent. Deze functie moet rekening houden dat bepaalde gegevens in het pakket niet altijd dezelfde lengte hebben, waaronder de methode, de parameters en de data. Juist voor deze reden zijn er speciale plaatsen waar de lengte van die variabelen worden gegeven. Eerst wordt de lengte van de methode opgeslagen. Deze bevindt zich steeds op positie 44 in het pakket 3. Dit is te achterhalen door het aantal bytes te tellen die de methode vooraf gaan. 1 SHA256: Secure Hashing Algorithm, 256bit. Dit is een functie die een hash creëert van een bepaalde waarde. 2 Als dit gebeurt zal de server een foutmelding geven dat er meer gegevens worden opgevraagd dan er aanwezig zijn. 3 Deze posities worden bepaald vanaf positie nul, dus dit is de 45ste byte van het pakket. 19

26 2.9 Besluit Ten tweede wordt het aantal parameters opgeslagen. Deze bevindt zich na de methode, maar aangezien de methode ook een bepaalde lengte inneemt (die we hiervoor bepaald hebben), moet die lengte er ook bijgeteld worden. Het aantal parameters bevindt zich dus op positie 45 plus de lengte van de methode. Verder moet voor elke parameter ook een lengte berekend worden. In het begin van elke parameter staat zijn lengte gegeven, de som van al deze lengtes plus het aantal parameters geeft dan de lengte van het parameter gedeelte. Als laatste moet de lengte van de data nog bijgeteld worden. Deze lengte is te vinden op positie 42 van het pakket. De som van al deze lengtes bepalen de lengte van het pakket, hieruit kan worden afgeleid of er te weinig, genoeg, of te veel gegevens zijn doorgestuurd. Indien er te weinig is doorgestuurd wordt de data tijdelijk opgeslagen tot er meer data toekomt De SpaceCP RTK module Om extra acties of methodes toe te voegen aan RTK moet er een extra module geïnstalleerd worden op RTK. Voor SpaceCP wordt er een module ontwikkeld die toelaat om gegevens zoals de online spelers op de server door te sturen naar SpaceCP. 2.9 Besluit Al deze onderdelen zijn al geheel of gedeeltelijk geïmplementeerd in SpaceCP. Wat er verder nog moet worden afgewerkt zijn de addons voor Bukkit. Als deze af zijn en volledig werken kan er een bèta release worden uitgerold. Hierbij wordt dan veel aandacht besteedt aan hoe een webapplicatie best wordt uitgerold. Met de bèta kunnen we dan alle bugs 1 eruit halen zodat we een stabiel en volledig werkend product kunnen uitbrengen. Hierna kan er dan verdere aandacht besteedt worden aan uitrollen bij verschillende hosting providers. 1 bugs is een term voor fouten in computerprogramma s. 20

27 Hoofdstuk 3 Gebruiksscenarios 3.1 De server met een klein aantal spelers Een kleine server 1 kan gemakkelijk nieuwe plugins toevoegen, de spelers beheren en zien hoeveel spelers er dagelijks online zijn. Dit alles zonder veel moeite en vanop eender welke plek. 3.2 De matig populaire server Een ietwat populairdere server 2 kan met SpaceCP zijn server vlot beheren via de plugin configuratie pagina. Ook reservekopieën en het schema met geplande taken nemen veel druk van de administrator zijn schouders. De administrator kan ook extra gebruikers toevoegen. Deze extra gebruikers kunnen worden gelimiteerd tot bepaalde functies. 3.3 Het grote server netwerk In een groot server netwerk 3 is het heel belangrijk dat alle servers online blijven. Ons geïntegreerd notificatie systeem laat de administrators en de gebruikers iets weten als er zich een probleem voordoet. 1 Tussen 0 en 20 spelers. 2 Tussen 21 en 100 spelers. 3 Meerdere servers met vele spelers, meestal gebruikt om de hoeveelheid spelers te balanceren. 21

28 3.4 Het server hosting bedrijf Ook een goed overzicht hebben is zeer belangrijk. De SpaceCP backend laat toe om alle servers te sorteren op naam, adres, statistieken etc. Op deze manier kunnen de werkende servers er uit worden gefilterd en is alleen het belangrijke nog zichtbaar. 3.4 Het server hosting bedrijf Een server hosting bedrijf heeft vele servers en vele gebruikers. SpaceCP maakt het gemakkelijk voor de support teams om even een server te beheren en de fouten op te lossen. Dit zonder één keer de webbrowser te verlaten. Ook de automatisering en koppeling met verscheidene commerciële pakketten laat veel werk voor het hosting bedrijf achterwege. 22

29 Besluit Uiteindelijk komen we dan terug bij de onderzoeksvraag, hoe is SpaceCP opgebouwd en ontworpen? Heel belangrijk is het ontwerp. [zie deel 1] Als het ontwerp niet goed uitgedacht is komt er een moment dat er aanpassingen nodig zijn die veel dubbel werk opleveren voor de programmeurs. Het ontwerp loopt nauw samen met de keuze van programmeertaal omdat bepaalde interacties mogelijk verschillend verlopen in bepaalde programmeertalen. Denk aan het verschil tussen synchroon en asynchroon programmeren [zie 2.2.1]. Deze keuze beperkt ook het aantal software-bibliotheken die beschikbaar zijn. Net om deze reden is voor Javascript gekozen bij het ontwerp van SpaceCP. Met AngularJS als belangrijkste front-end bibliotheek, en CompoundJS als backend server is er veel flexibiliteit en vrijheid in de code. [zie deel 2] Het is ook duidelijk dat SpaceCP de amateurs en de server hosts helpt bij het opzetten en het beheer van hun servers en gebruikers. Maar dat SpaceCP ook een krachtig hulpmiddel is voor de doorgewinterde beheerder die zijn team van moderators toegang wil geven tot een gemakkelijk systeem. [zie deel 3] SpaceCP heeft veel potentieel en kan uitgroeien tot een heus platform voor serverbeheer van alle soorten. 23

30 Appendices 24

31 Bijlage A Pakket definitie Magic number: 4 bytes (0x for raw packets) Endianness constant: 0xAB Encrypted: bool (1 bit) Kill session flag: bool (1 bit) Packet revision: 6 bits Access key: 32 bytes == ==IF ENCRYPTION IS ON, ALL BELOW IS ENCRYPTED== == --ONLY IF ENCRYPTED-- Access key: 32 bytes Next initialization vector: 16 bytes --END-- SessionID: 4 bytes (int32) data block length: 2 bytes (unsigned short) Method name length: 1 byte Method name: n bytes Parameter count: 1 byte Parameters: Parameter length: 1 byte Parameter: n bytes Data block: n bytes (up to 65535) 25

32 Bijlage B Pakket lengte function getlength (buffer) { var a,b,c=0,d,x=0; if (buffer.length < 45) return buffer.length+1; a = buffer[44]; if (buffer.length < 46+a) return buffer.length+1+a; b = buffer[45+a]; for (var i = 0; i < b; i++) { if (buffer.length < 46+a+i+c) return buffer.length+1+a+i+c; x = buffer[46+a+i+c]; c += x; } d = buffer.readint16be(42); return 46+a+b+c+d; }; Deze code is een onderdeel van de NodeJS module voor RTK. De volledige code is te vinden op Github: 26

33 Bibliografie [1] Bolton, D., (2010). What is SQL? Geraadpleegd op 17 november 2013 via od/thebusinessofsoftware/a/whatissql.htm. [2] Burke, J., (2011). RequireJS. Geraadpleegd op 17 november 2013 via 16 [3] Cogswell, J., (2011). SQL vs. NoSQL: Which Is Better? Geraadpleegd op 17 november 2013 via [4] Cois, C. A., (2010). Understanding The Node.js Event Loop Udemy. Geraadpleegd op 16 november 2013 via [5] Foundation, M., (2012). WebSockets MDN. Geraadpleegd op 17 november 2013 via developer.mozilla.org/en/docs/websockets. [6] Google, (2010). AngularJS by Google. Geraadpleegd op 18 november 2013 via 16 [7] Hemel, Z., (2012). Node.js and The Case of the Blocked Event Loop - Zef.me. Geraadpleegd op 16 november 2013 via [8] Impact, L., (2013). Node.js vs PHP using Load Impact to visualize node.js efficiency Load Impact Blog. Geraadpleegd op 16 november 2013 via node-js-vs-php-using-load-impact-to-visualize-node-js-efficency/. [9] Initiative, O. S., (2005). The Open Source Initiative. Geraadpleegd op 22 november 2013 via http: //opensource.org/. [10] International, E., (2011). ECMAScript. Geraadpleegd op 16 november 2013 via ecma-international.org/publications/files/ecma-st/ecma-262.pdf. [11] Joyent, (2010). Node.JS. Geraadpleegd op 17 november 2013 via 7 [12] jquery Foundation, (2013). jquery. Geraadpleegd op 18 november 2013 via 17 [13] Mardanov, A., (2013). PHP vs. Node.js webapplog. Geraadpleegd op 16 november 2013 via [14] Meerdere, (2011). javascript - How to decide when to use NodeJS? - Stack Overflow. Geraadpleegd op 16 november 2013 via how-to-decide-when-to-use-nodejs. [15] Meerdere, (2013). Node.js, PHP, Javascript Confusion - Stack Overflow. Geraadpleegd op 16 november 2013 via 27

34 BIBLIOGRAFIE [16] Microsoft, (2003). Model-View-Controller. Geraadpleegd op 20 november 2013 via microsoft.com/en-us/library/ff aspx. [17] Mikoluk, K., (2013). NoSQL vs SQL - A Time for Change? Geraadpleegd op 17 november 2013 via [18] MongoDB, (2013). NoSQL Databases Explained MongoDB. Geraadpleegd op 17 november 2013 via [19] Nuzum, M., (2013). Why I switched to Node.js Bearfruit. Geraadpleegd op 16 november 2013 via [20] Persson, M., (2010). Minecraft. Geraadpleegd op 17 november 2013 via [21] Rager, L., (2011). Home - SpaceBukkit by XereoNet. Geraadpleegd op 20 november 2013 via 3 [22] Rager, L., (2013). Home - SpaceCP by XereoNet. Geraadpleegd op 20 november 2013 via http: //spacecp.xereo.net/. 6 [23] Rager, L. and Timmermans, J., (2012). SpaceBukkit Beta Web Administration the awesome way! Geraadpleegd op 20 november 2013 via web-admin-spacebukkit-beta-1-2-web-administration-the-awesome-way.58252/. [24] Resin.io, T., (2013). JavaScript, The Final Frontier. Geraadpleegd op 19 november 2013 via http: //resin.io/javascript-the-final-frontier/. [25] Shawwa, N. E., (2011). Scripting vs. Coding vs. Programming A Software Engineer s thoughts and rantings. Geraadpleegd op 16 november 2013 via scripting-coding-programming/. [26] Stones-Havas, N., ( ). RemoteToolkit - Restarts + crash detection + auto saves + remote console! Geraadpleegd op 17 november 2013 via admn-remotetoolkit-r10-a15-restarts-crash-detection-auto-saves-remote-console /. [27] Takada, M., (2011). Understanding the node.js event loop Mixu s tech blog. Geraadpleegd op 16 november 2013 via [28] Timmermans, J., (2013). RTKAPI. Geraadpleegd op 22 november 2013 via rtkapi

icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous

icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous 2006-2007 Inhoudsopgave 1 2 1.1 Programmeertaal PHP5..................... 2 1.2 MySQL database......................... 3 1.3 Adobe Flash...........................

Nadere informatie

Software Design Document

Software Design Document Software Design Document Mathieu Reymond, Arno Moonens December 2014 Inhoudsopgave 1 Versiegeschiedenis 2 2 Definities 3 3 Introductie 4 3.1 Doel en Scope............................. 4 4 Logica 5 4.1

Nadere informatie

Inhoudsopgave Disclaimer... 3 Voorwoord... 4 Inleiding... 5 Het downloaden van XAMPP... 7 Het installeren van XAMPP... 8 Joomla installeren op

Inhoudsopgave Disclaimer... 3 Voorwoord... 4 Inleiding... 5 Het downloaden van XAMPP... 7 Het installeren van XAMPP... 8 Joomla installeren op 1 Inhoudsopgave Disclaimer... 3 Voorwoord... 4 Inleiding... 5 Het downloaden van XAMPP... 7 Het installeren van XAMPP.... 8 Joomla installeren op XAMPP... 15 Handige links... 16 2 Disclaimer Bij de samenstelling

Nadere informatie

Technisch Ontwerp W e b s i t e W O S I

Technisch Ontwerp W e b s i t e W O S I Technisch Ontwerp W e b s i t e W O S I WOSI Ruud Jungbacker en Michael de Vries - Technisch ontwerp Website Document historie Versie(s) Versie Datum Status Omschrijving / wijzigingen 0.1 20 nov 2008 Concept

Nadere informatie

Technisch ontwerp. Projectteam 6. Project "Web Essentials" 02 april 2009. Versie 2.1.0

Technisch ontwerp. Projectteam 6. Project Web Essentials 02 april 2009. Versie 2.1.0 Projectteam 6 Faculteit Natuur en Techniek Hogeschool Utrecht Projectleider: Hans Allis, hans.allis@student.hu.nl Technisch ontwerp Project "Web Essentials" 02 april 2009 Versie 2.1.0 Teamleden: Armin

Nadere informatie

Opdrachtformulering (pagina 3 van 7)

Opdrachtformulering (pagina 3 van 7) Afstudeerovereenkomst van Tim Wils Bijlage 1 Opdrachtformulering (pagina 3 van 7) Dit project betreft een eigen framework (soort API) waarmee relatief gemakkelijk en in korte tijd eindproducten opgezet

Nadere informatie

Beschrijving functioneel en technisch design van de website

Beschrijving functioneel en technisch design van de website Bespreking Punten: Beschrijving functioneel en technisch design van de website Nr. Punt 1 Student 2 Bedrijf 3 Algemene lay out 4 Technologieën 5 Webruimte en datatrafiek 1. Student Registratie Bij de registratie

Nadere informatie

Inhoudsopgave... 1 Disclaimer... 3 Voorwoord... 3 Inleiding... 5 Het downloaden van XAMPP... 7 Het installeren van XAMPP... 8 Joomla installeren op

Inhoudsopgave... 1 Disclaimer... 3 Voorwoord... 3 Inleiding... 5 Het downloaden van XAMPP... 7 Het installeren van XAMPP... 8 Joomla installeren op 1 Inhoudsopgave... 1 Disclaimer... 3 Voorwoord... 3 Inleiding... 5 Het downloaden van XAMPP... 7 Het installeren van XAMPP... 8 Joomla installeren op XAMPP... 14 Handige links... 15 2 Disclaimer Bij de

Nadere informatie

PHP-OPDRACHT SITE BOUWEN

PHP-OPDRACHT SITE BOUWEN PHP-OPDRACHT SITE BOUWEN PERIODE 4 LEERJAAR 1 Opleiding: Duur: Applicatieontwikkelaar 1 onderwijsperiode (4-8 weken) Voorkennis: Basiscursus PHP 5.4 Victor Peters (978 90 125 8499 9) Basiscursus XHTML,

Nadere informatie

Project plan. Erwin Hannaart Sander Tegelaar 61849 62407

Project plan. Erwin Hannaart Sander Tegelaar 61849 62407 Project plan Erwin Hannaart Sander Tegelaar 61849 62407 I4C2 I4C1 1 Inhoudsopgave Doel en doelgroep van het project... 3 Beschrijving van het project... 4 Benodigde materialen... 5 Te verwachten resultaten,

Nadere informatie

Connect Social Business. Plan van Aanpak voor mijn stage bij ConnectSB

Connect Social Business. Plan van Aanpak voor mijn stage bij ConnectSB Connect Social Business Plan van Aanpak voor mijn stage bij ConnectSB Joey Kaan September 28, 2014 Inhoudsopgave 1 Achtergronden 1 2 Probleemstelling & Doelstelling 2 2.1 Leren Professioneel Functioneren..................

Nadere informatie

Connect Social Business

Connect Social Business Connect Social Business Joey Kaan September 2014 Inhoudsopgave 1 Achtergronden 4 2 Probleemstelling & Doelstelling 5 2.1 Leren Professioneel Functioneren.................. 5 2.2 Facebook API leren door

Nadere informatie

Connect Social Business. Plan van Aanpak voor mijn stage bij ConnectSB

Connect Social Business. Plan van Aanpak voor mijn stage bij ConnectSB Connect Social Business Plan van Aanpak voor mijn stage bij ConnectSB Joey Kaan September 21, 2014 Inhoudsopgave 1 Achtergronden 4 2 Probleemstelling & Doelstelling 5 2.1 Leren Professioneel Functioneren..................

Nadere informatie

Installatiehandleiding King Webservices 2.0

Installatiehandleiding King Webservices 2.0 Inhoud Inleiding... 2 Installatie en configuratie King Webservices... 2 King Webservices systeemeisen... 2 King Webservices installatie-eisen... 2 King Webservices installeren... 2 King Webservices inrichten

Nadere informatie

In dit hoofdstuk maak je kennis met PHP. Hoe werkt deze. programmeertaal? En hoe is het ontstaan? Ook leer je welke editors

In dit hoofdstuk maak je kennis met PHP. Hoe werkt deze. programmeertaal? En hoe is het ontstaan? Ook leer je welke editors 1. Over PHP 1.1 Inleiding In dit hoofdstuk maak je kennis met PHP. Hoe werkt deze programmeertaal? En hoe is het ontstaan? Ook leer je welke editors je kunt gebruiken om PHP-scripts te maken en hoe je

Nadere informatie

Over PHP. PHP en MySQL. 1.1 Inleiding. In dit hoofdstuk maak je kennis met PHP. Hoe werkt deze

Over PHP. PHP en MySQL. 1.1 Inleiding. In dit hoofdstuk maak je kennis met PHP. Hoe werkt deze Over PHP 1.1 Inleiding In dit hoofdstuk maak je kennis met PHP. Hoe werkt deze programmeertaal? En hoe is het ontstaan? Ook leer je welke editors je kunt gebruiken om PHP-scripts te maken en hoe je eenvoudig

Nadere informatie

Vakinhoudelijke uitwerking Keuzevak Applicatieontwikkeling van het profiel MVI vmbo beroepsgericht

Vakinhoudelijke uitwerking Keuzevak Applicatieontwikkeling van het profiel MVI vmbo beroepsgericht Vakinhoudelijke uitwerking Keuzevak Applicatieontwikkeling van het profiel MVI vmbo beroepsgericht Deze vakinhoudelijke uitwerking is ontwikkeld door het Redactieteam van de Schooleamenbank vmbo voor dit

Nadere informatie

LES 1: AAN DE SLAG MET WORDPRESS. Lesoverzicht: Aan de slag Wat is WordPress CMS Front-end Back-end Samenvatting. Tijd: 5 minuten

LES 1: AAN DE SLAG MET WORDPRESS. Lesoverzicht: Aan de slag Wat is WordPress CMS Front-end Back-end Samenvatting. Tijd: 5 minuten LES 1: AAN DE SLAG MET WORDPRESS Lesoverzicht: Aan de slag Wat is WordPress CMS Front-end Back-end Samenvatting Tijd: 5 minuten Doel: Aan het einde van deze les weet je wat WordPress is en kun je benoemen

Nadere informatie

DrICTVoip.dll v 2.1 Informatie en handleiding

DrICTVoip.dll v 2.1 Informatie en handleiding DrICTVoip.dll v 2.1 Informatie en handleiding Nieuw in deze versie : Koppeling voor web gebaseerde toepassingen (DrICTVoIPwebClient.exe) (zie hoofdstuk 8) 1. Inleiding Met de DrICTVoIP.DLL maakt u uw software

Nadere informatie

React en React Native voor websites en apps

React en React Native voor websites en apps React en React Native voor websites en apps H A N S-PE T E R H ARMSEN HEEFT DI T GE SCH R E V EN IN APRI L 2017 Deze whitepaper is bedoeld voor product owners en beslissers. Hij gaat over React, een JavaScript

Nadere informatie

Planbord installatie instructies

Planbord installatie instructies Planbord installatie instructies Uit Comprise Wiki Inhoud 1 Basis installatie 1.1 Installeren 1.1.1 Microsoft Data Access Components 1.2 De eerste keer starten 2 Veelgestelde vragen 2.1 "Network resource

Nadere informatie

Werking van de Office Connector, en het oplossen van fouten.

Werking van de Office Connector, en het oplossen van fouten. Werking van de Office Connector, en het oplossen van fouten. De Office Connector zorgt ervoor dat de Microsoft Officeomgeving gebruikt kan worden als ontwerp en genereeromgeving voor documenten waarbij

Nadere informatie

Test Joomla op je PC 1

Test Joomla op je PC 1 1 Disclaimer Bij de samenstelling van dit ebook is de grootst mogelijke zorg besteed aan de juistheid en correctheid van de informatie die in dit ebook wordt verstrekt. De auteur van dit ebook kan op geen

Nadere informatie

De Kleine WordPress Handleiding

De Kleine WordPress Handleiding Introductie Dit is geen uitgebreide handleiding om een WordPress website of blog mee te bouwen. Het is ook geen overzicht van alle aspecten die een WordPress website zo bijzonder maken en geen verhandeling

Nadere informatie

WordPress in het Kort

WordPress in het Kort WordPress in het Kort Een website maken met Wordpress. In minder dan één uur online! Inclusief installatie van een thema en plugins Alle rechten 2013, Rudy Brinkman, BrinkhostDotCom, http://www.brinkhost.nl

Nadere informatie

icafe Een digitaal bestelsysteem voor de horeca Joeri Verdeyen Stefaan De Spiegeleer Naim Ben Tanfous

icafe Een digitaal bestelsysteem voor de horeca Joeri Verdeyen Stefaan De Spiegeleer Naim Ben Tanfous icafe Een digitaal bestelsysteem voor de horeca Joeri Verdeyen Stefaan De Spiegeleer Naim Ben Tanfous 2006-2007 Voorwoord 1 Inhoudsopgave 2 Hoofdstuk 1 Inleiding 3 Hoofdstuk 2 icafe 2.1 Het idee 2.2 Mogelijkheden

Nadere informatie

10. Single Page Applications

10. Single Page Applications WHITEPAPER IN 5 MINUTEN M E I 2 0 1 4 10. Single Page Applications Introductie De wereld verandert snel en gebruikers openen je site of applicatie steeds minder met een traditionele browser. Een site of

Nadere informatie

01/05. Websites Nederland over. Mobile marketing. Whitepaper #03/2013. Mabelie Samuels internet marketeer

01/05. Websites Nederland over. Mobile marketing. Whitepaper #03/2013. Mabelie Samuels internet marketeer 01/05 Websites Nederland over Mobile marketing Mabelie Samuels internet marketeer 02/05 Mobile marketing Kunt u zich uw eerste mobiele telefoon nog herinneren? Die van mij was een Motorola, versie onbekend,

Nadere informatie

Analyse Programmeertalen

Analyse Programmeertalen Analyse Programmeertalen De keuze van een programmeertaal mag niet onderschat worden. Het is dankzij deze taal dat de gebruiker interactie heeft met het complete systeem. Het is dus vanzelfsprekend dat

Nadere informatie

Software Test Plan. Yannick Verschueren

Software Test Plan. Yannick Verschueren Software Test Plan Yannick Verschueren November 2014 Document geschiedenis Versie Datum Auteur/co-auteur Beschrijving 1 November 2014 Yannick Verschueren Eerste versie 1 Inhoudstafel 1 Introductie 3 1.1

Nadere informatie

LearnOSM. PostgreSQL & PostGIS. PostgreSQL en PostGIS installeren. Bijgewerkt

LearnOSM. PostgreSQL & PostGIS. PostgreSQL en PostGIS installeren. Bijgewerkt PostgreSQL & PostGIS Bijgewerkt 10-09-2016 LearnOSM In dit hoofdstuk zullen we laten zien hoe PostgreSQL in te stellen op Windows en hoe een database te maken waarin u geografische gegevens kunt opslaan.

Nadere informatie

XAMPP Web Development omgeving opzetten onder Windows.

XAMPP Web Development omgeving opzetten onder Windows. XAMPP Web Development omgeving opzetten onder Windows. Inhoudsopgave 1. Lees dit eerst... 2 2. Inleiding... 2 1 Xampp downloaden... 2 2 Installatie Xampp 1.7.4 op externe harddisk... 3 3 XAMPP herconfiguren...

Nadere informatie

Kleine cursus PHP5. Auteur: Raymond Moesker

Kleine cursus PHP5. Auteur: Raymond Moesker Kleine cursus PHP5 Auteur: Raymond Moesker Kleine cursus PHP PHP is platform en CPU onafhankelijk, open source, snel, heeft een grote userbase, het is object georiënteerd, het wordt omarmd door grote bedrijven

Nadere informatie

INSTALLATIE NIS UPDATE Q3-2014-03 Q3-2014-03

INSTALLATIE NIS UPDATE Q3-2014-03 Q3-2014-03 INSTALLATIE NIS UPDATE Q3-2014-03 Q3-2014-03 2014 Van Brug Software B.V. Hoewel deze handleiding met zeer veel zorg is samengesteld, aanvaardt Van Brug Software B.V. geen aansprakelijkheid voor enige schade

Nadere informatie

4 ASP.NET MVC. 4.1 Controllers

4 ASP.NET MVC. 4.1 Controllers 4 ASP.NET MVC ASP.NET is het.net raamwerk voor het bouwen van webapplicaties. De MVC variant hiervan is speciaal ontworpen voor het bouwen van dergelijke applicaties volgens het Model-View-Controller paradigma.

Nadere informatie

Les 10 : Aanmaken van een database (deel2).

Les 10 : Aanmaken van een database (deel2). Les 10 : Aanmaken van een database (deel2). Wat is een database? Een centrale opslagruimte voor gegevens. Alle informatie wordt centraal opgeslagen en kan door iedereen geraadpleegd worden. Voordelen van

Nadere informatie

Waarom gebruiken web- ontwikkelaars Wordpress als CMS?

Waarom gebruiken web- ontwikkelaars Wordpress als CMS? Waarom gebruiken webontwikkelaars Wordpress als CMS? Figuur 1 Naam: René Sasbrink Klas: IS106 Studentnummer: 500729630 Opleiding: ICT voltijd, Software Engineer Instelling: Hogeschool van Amsterdam Vak:

Nadere informatie

Angular Best Practices Door Alex en Chris van Beek

Angular Best Practices Door Alex en Chris van Beek Angular Best Practices Door Alex en Chris van Beek Over ons Enthousiastelingen Software Architecten bij Luminis Arnhem B.V. Gespecialiseerd in Microsoft technologie:.net, Azure en Windows Twitter: @Beekje

Nadere informatie

Microsoft Office 365 voor bedrijven. Remcoh legt uit

Microsoft Office 365 voor bedrijven. Remcoh legt uit Microsoft Office 365 voor bedrijven Remcoh legt uit Beter samenwerken, ook onderweg Starten met Office 365 is starten met het nieuwe werken. Met Office 365 heeft u namelijk de mogelijkheid om altijd en

Nadere informatie

Voordat er optimaal gebruik gemaakt kan worden gemaakt van Magister 5 via het web, kan deze FAQ mogelijk van pas komen.

Voordat er optimaal gebruik gemaakt kan worden gemaakt van Magister 5 via het web, kan deze FAQ mogelijk van pas komen. Silverlight FAQ t.b.v. Magister 5 Voordat er optimaal gebruik gemaakt kan worden gemaakt van Magister 5 via het web, kan deze FAQ mogelijk van pas komen. Zie de algemene Microsoft Silverlight FAQ op: http://www.microsoft.com/silverlight/faq/

Nadere informatie

OpenX Hosting. Opties en Alternatieven

OpenX Hosting. Opties en Alternatieven OpenX Hosting Opties en Alternatieven Versie 1.0 Groningen, 9 juni 2009 Opgesteld door: Copyright 2009 ErikGeurts.com B.V. Niets uit dit document mag worden verveelvoudigd, opgeslagen in een geautomatiseerd

Nadere informatie

Als eerste bedankt voor het aanschaffen van deze PDF waarin ik je handige tips en trucs zal geven over het schrijven van een handleiding.

Als eerste bedankt voor het aanschaffen van deze PDF waarin ik je handige tips en trucs zal geven over het schrijven van een handleiding. Bedankt! Als eerste bedankt voor het aanschaffen van deze PDF waarin ik je handige tips en trucs zal geven over het schrijven van een handleiding. Graag zou ik je willen vragen mij een email te sturen

Nadere informatie

1 "log-file": "/var/log/pilight.log" 2 "log-file": "c:/pilight/pilight.log"

1 log-file: /var/log/pilight.log 2 log-file: c:/pilight/pilight.log Instellingen Instellingen...1 Introductie...2 Basis...2 port...2 standalone...2 pid-file...2 log-file...2 log-level...2 whitelist...3 stats-enable...3 watchdog-enable...3 Module paden...4 action-root...4

Nadere informatie

Xampp Web Development omgeving opzetten onder Windows.

Xampp Web Development omgeving opzetten onder Windows. Xampp Web Development omgeving opzetten onder Windows. Inhoudsopgave 1. Lees dit eerst... 2 2. Inleiding... 2 3. Installatie Xampp... 3 1.1 Installatie Xampp Launcher... 7 1.2 Controle geïnstalleerde bestanden...

Nadere informatie

Appendix 1 Teamplayers

Appendix 1 Teamplayers Appendix 1 Teamplayers (vaardigheden worden aangegeven qua niveau in starter/redelijk/) Teamlid Programmeur/ontwikkelaar 1 Programmeertalen PHP Algemeen (Object Oriented) PHP Zend Framework (1&2) PHP Symfony

Nadere informatie

Beginnen met businessdesk

Beginnen met businessdesk Beginnen met businessdesk Inleiding De businessdesk oplossingen van Desk Solutions zijn specifieke oplossingen die u een flexibele desktop omgeving leveren zonder dat u zich zorgen hoeft te maken over

Nadere informatie

HTML. Media. Hans Roeyen V 3.0

HTML. Media. Hans Roeyen V 3.0 Media Hans Roeyen V 3.0 12 maart 2015 Inhoud 1. (Multi)Media op websites... 3 2. Flash en Websites... 4 3. Video op je website... 4 3.1. YouTube insluiten op de pagina... 4 3.2. Video zonder YouTube...

Nadere informatie

Een database gebruiken

Een database gebruiken Een database gebruiken In een vorige handleiding heb ik laten zien hoe je met Scratch soortgelijke gegevens kunt opslaan in een lijst om deze op een later moment weer op te halen. Als voorbeeld las ik

Nadere informatie

9. MYSQL. Daarin zien we het administratie paneel van mysql.

9. MYSQL. Daarin zien we het administratie paneel van mysql. 9. MYSQL We kunnen ook in dit systeem gebruik maken van de gekende ACCESS databanken. Zolang het maar relationale databanjken zijn kunnen we er gebruik van maken. In PHP echter maakt men meestal gebruik

Nadere informatie

i ll take off to the cloud

i ll take off to the cloud i ll take off to the cloud Webbased applicaties gebouwd door ILE programmeurs Gepresenteerd door: Drs. Martijn van Breden Lead software architect Pantheon Automatisering 26-4-2017 1 Historie Pantheon Ontstaan

Nadere informatie

Handleiding voor het installeren van Tomcat7

Handleiding voor het installeren van Tomcat7 Handleiding voor het installeren van Tomcat7 Brondocument C:\WebServer\Handleiding\Tomcat\InstallerenTomcat.odt Versiebeheer Versie Datum Uitleg 1.0v 22-05-06 1e versie Tomcat 5.5 1.1v 24-05-06 Aanpassingen

Nadere informatie

INSTALLATIE NIS UPDATE Q2-2014-02 Q2-2014-02

INSTALLATIE NIS UPDATE Q2-2014-02 Q2-2014-02 INSTALLATIE NIS UPDATE Q2-2014-02 Q2-2014-02 2014 Van Brug Software B.V. Hoewel deze handleiding met zeer veel zorg is samengesteld, aanvaardt Van Brug Software B.V. geen aansprakelijkheid voor enige schade

Nadere informatie

Analyse probleem remote execution

Analyse probleem remote execution Analyse probleem remote execution Karel Nijs 2005-09-28 1.1 Beschrijving van het project De bedoeling van de GUI is een gemakkelijke uitvoering van verschillende checks van ICs. De GUI moet in Tcl/Tk ontworpen

Nadere informatie

Installatiehandleiding. Facto minifmis

Installatiehandleiding. Facto minifmis Installatiehandleiding Facto minifmis 1. Installatie Facto MiniFMIS 1.1 Achtergrond Facto MiniFMIS biedt facilitaire organisaties een eenvoudige en gebruikersvriendelijke hulpmiddel bij het uitvoeren van

Nadere informatie

Software Design Document

Software Design Document Software Design Document PEN: Paper Exchange Network Software Engineering groep 1 (se1-1415) Academiejaar 2014-2015 Jens Nevens - Sander Lenaerts - Nassim Versbraegen Jo De Neve - Jasper Bevernage Versie

Nadere informatie

INSTALLATIE NIS UPDATE 2014-Q4-01 2014-Q4-01

INSTALLATIE NIS UPDATE 2014-Q4-01 2014-Q4-01 INSTALLATIE NIS UPDATE 2014-Q4-01 2014-Q4-01 2014 Van Brug Software B.V. Hoewel deze handleiding met zeer veel zorg is samengesteld, aanvaardt Van Brug Software B.V. geen aansprakelijkheid voor enige schade

Nadere informatie

Beveiligingsbeleid. Online platform Perflectie

Beveiligingsbeleid. Online platform Perflectie Beveiligingsbeleid Online platform Perflectie 2018 Beveiligingsbeleid Perflectie Versiebeheer Naam Functie Datum Versie Dimitri Tholen Software Architect 12 december 2014 1.0 Dimitri Tholen Software Architect

Nadere informatie

Mamut Business Software

Mamut Business Software Mamut Business Software Eenvoudige installatiehandleiding Inhoud Voor de installatie 3 Over het programma 3 Over de installatie 3 Tijdens de installatie 5 Voorwaarden voor installatie 5 Zo installeert

Nadere informatie

SCENARIO ADVIES INSTALLATIEHANDLEIDING. Versie 1.3

SCENARIO ADVIES INSTALLATIEHANDLEIDING. Versie 1.3 SCENARIO ADVIES INSTALLATIEHANDLEIDING Versie 1.3 1 Handleiding Installatie Scenario Advies... 1 2 Voorbereiding installatie Scenario Advies... 1 2.1 Downloaden programmatuur... 2 3 Serverinstallatie Scenario

Nadere informatie

Informatie & Databases

Informatie & Databases Informatie Wat is informatie en waaruit het bestaat? Stel op een kaart staat het getal 37 geschreven. Wat kun je dan zeggen van het cijfer 37? Niets bijzonders, toch? Alleen dat het een getal is. Gaat

Nadere informatie

Waarom automatiseren?

Waarom automatiseren? Chris De Clercq Waarom automatiseren? Wanneer u uw manier van werken hebt geautomatiseerd, zal u zich afvragen hoe u het vroeger zonder heeft gedaan Automatiseren helpt u bij: - communicatie efficiënter

Nadere informatie

Professionele Direct Mail Software. Database Engine Ontwerpen & Printen Bestandsonderhoud Ontdubbelen Scripting Adrescorrectie Postale Sortering

Professionele Direct Mail Software. Database Engine Ontwerpen & Printen Bestandsonderhoud Ontdubbelen Scripting Adrescorrectie Postale Sortering Professionele Direct Mail Software Database Engine Ontwerpen & Printen Bestandsonderhoud Ontdubbelen Scripting Adrescorrectie Postale Sortering Een Compleet en Modulair Direct Mail Systeem FlexMail is

Nadere informatie

Object Oriented Programming

Object Oriented Programming Object Oriented Programming voor webapplicaties Door Edwin Vlieg Waarom OOP? Basis uitleg over OOP Design Patterns ActiveRecord Model View Controller Extra informatie Vragen OOP Object Oriented Programming

Nadere informatie

Les 9: formulier controle met javascript.

Les 9: formulier controle met javascript. Les 9: formulier controle met javascript. Javascript is erg veel gebruikt bij internet toepassingen. In tegenstelling tot PHP, wat een server side scripting is, is java client side scripting. Dwz, niet

Nadere informatie

INSTALLATIE NIS UPDATE 2014-Q4 2014-Q4

INSTALLATIE NIS UPDATE 2014-Q4 2014-Q4 INSTALLATIE NIS UPDATE 2014-Q4 2014-Q4 2014 Van Brug Software B.V. Hoewel deze handleiding met zeer veel zorg is samengesteld, aanvaardt Van Brug Software B.V. geen aansprakelijkheid voor enige schade

Nadere informatie

Installatiehandleiding SCENARIO ADVIES. Oktober Versie 1.3

Installatiehandleiding SCENARIO ADVIES. Oktober Versie 1.3 Installatiehandleiding SCENARIO ADVIES Oktober 2015 Versie 1.3 Hoofdstuk 1, Installatiehandleiding Scenario Advies Inhoud 1 Installatiehandleiding Scenario Advies... 1 2 Voorbereiding installatie Scenario

Nadere informatie

ProjectHeatmap. Onderzoeksrapport v0.5 11-03-11 Dennis Wagenaar

ProjectHeatmap. Onderzoeksrapport v0.5 11-03-11 Dennis Wagenaar ProjectHeatmap Onderzoeksrapport v0.5 11-03-11 Dennis Wagenaar 1 Inhoudsopgave Inleiding...3 Gheat...4 Info...4 Voordelen...4 Nadelen...4 Google Fusion Tables...5 Info...5 Voordelen...5 Nadelen...5 OLHeatmap...6

Nadere informatie

// Mamut Business Software

// Mamut Business Software // Mamut Business Software Eenvoudige installatiehandleiding Inhoud Voor de installatie 3 Over het programma 3 Over de installatie 4 Tijdens de installatie 5 Voorwaarden voor installatie 5 Zo installeert

Nadere informatie

Remote Back-up Personal

Remote Back-up Personal handleiding Remote Back-up Personal Versie 4 1 INLEIDING... 3 1.1 SYSTEEMEISEN... 3 1.2 BELANGRIJKSTE FUNCTIES... 3 2 INSTALLATIE BACK-UP MANAGER... 4 2.1 VOLLEDIGE DATA BESCHIKBAARHEID IN 3 STAPPEN...

Nadere informatie

Problemen met de stand-by tijd van uw iphone met ios 7.

Problemen met de stand-by tijd van uw iphone met ios 7. Problemen met de stand-by tijd van uw iphone met ios 7. versie 1.2 - februari 2014 Inleiding Voor u ziet u nu het document Problemen met de stand-by tijd van uw iphone met ios 7. Dit document is u aangeleverd

Nadere informatie

Tinus Plotseling 29-12-2002. MySQL

Tinus Plotseling 29-12-2002. MySQL Tinus Plotseling 29-12-2002 MySQL Inhoudsopgave Inleiding... 3 MySQL Geschiedenis... 3 MySQL Toepassingen... 3 MySQL Voordelen... 4 MySQL Nadelen... 4 MySQL bij ASCI... 4 PostgreSQL... 5 ORACLE... 6 MS

Nadere informatie

ZIEZO Remote Back-up Personal

ZIEZO Remote Back-up Personal handleiding ZIEZO Remote Back-up Personal Versie 4 1 INLEIDING... 3 1.1 SYSTEEMEISEN... 3 1.2 BELANGRIJKSTE FUNCTIES... 3 2 INSTALLATIE BACK-UP MANAGER... 4 2.1 VOLLEDIGE DATA BESCHIKBAARHEID IN 3 STAPPEN...

Nadere informatie

Terminal Services. Document: Terminal Services T.b.v. relatie: Isaeus Auteur: Martin Waltmans Versie: 2.3 Datum: 20-3-2007 KB nummer: 100010

Terminal Services. Document: Terminal Services T.b.v. relatie: Isaeus Auteur: Martin Waltmans Versie: 2.3 Datum: 20-3-2007 KB nummer: 100010 Terminal Services Dit document beschrijft hoe op afstand kan worden ingelogd op een Terminal Server. Lees dit document zorgvuldig, voordat u voor het eerst hiervan gebruik maakt! Isaeus Solutions Tel:

Nadere informatie

Technische implementatie De infrastructuur rondom Transit kent de volgende rollen:

Technische implementatie De infrastructuur rondom Transit kent de volgende rollen: Transit Herkent u het? Steeds dezelfde uitdagingen in migratieprojecten; meerdere variabelen, in verschillende stadia en in een blijvend veranderende omgeving, managen. Grote hoeveelheden gegevens over

Nadere informatie

Grafisch ontwerp. Referenties. https://developers.google.com/webmasters/mobile-sites/ http://www.bluetrainmobile.com/mobile-showcase

Grafisch ontwerp. Referenties. https://developers.google.com/webmasters/mobile-sites/ http://www.bluetrainmobile.com/mobile-showcase Mobiel Datanose Op dit moment is mobiel datanose niet goed gedaan; je krijgt gewoon de site te zien zoals je het te zien krijgt op pc's of laptops. Maar vaak heb je het probleem dat je op je mobiel moet

Nadere informatie

Installatiehandleiding FWG 3.0/2011-2012. Stand-alone / Netwerkversie. Nieuwe Installatie van FWG 3.0/2011-2012 met een MS Access database

Installatiehandleiding FWG 3.0/2011-2012. Stand-alone / Netwerkversie. Nieuwe Installatie van FWG 3.0/2011-2012 met een MS Access database Installatiehandleiding FWG 3.0/2011-2012 Stand-alone / Netwerkversie Nieuwe Installatie van FWG 3.0/2011-2012 met een MS Access database Wij willen u er op wijzen dat ons systeem FWG3.0 Cd-rom versie dit

Nadere informatie

(Versie 1.4) THUISWERKPLEK INSTELLEN

(Versie 1.4) THUISWERKPLEK INSTELLEN (Versie 1.4) THUISWERKPLEK INSTELLEN Inhoud thuiswerkomgeving... 3 Installeren software op thuiswerkplek(eenmalig)... 5 Verbinding maken met de werkplek vanaf thuis... 9 Verbinding maken met de werkplek

Nadere informatie

Handleiding OpenCart - factuursturen.nl

Handleiding OpenCart - factuursturen.nl Handleiding OpenCart - factuursturen.nl www.webwinkelfacturen.nl Samenvatting Dit is de handleiding voor de koppeling van OpenCart naar Factuursturen.nl. De koppeling zorgt dat voor bestellingen in OpenCart

Nadere informatie

Installatiehandleiding Business Assistent

Installatiehandleiding Business Assistent Installatiehandleiding Business Assistent Wijzigingsgeschiedenis Versie Datum Omschrijving Status 0.1 25-09-2014 Eerste opzet van het installatie Concept document. 1.0 04-11-2014 Geen: Commercieel maken

Nadere informatie

INSTALLATIE EXCHANGE CONNECTOR

INSTALLATIE EXCHANGE CONNECTOR HANDLEIDING INSTALLATIE EXCHANGE CONNECTOR INSTALLATIE EXCHANGE CONNECTOR 0 0 HANDLEIDING INSTALLATIE EXCHANGE CONNECTOR INSTALLATIE EXCHANGE CONNECTOR HANDLEIDING datum: 10-08-2018 1 Inleiding... 1 2

Nadere informatie

Koppeling met een database

Koppeling met een database PHP en MySQL Koppeling met een database 11.1 Inleiding In PHP is het eenvoudig om een koppeling te maken met een database. Een database kan diverse gegevens bewaren die met PHP aangeroepen en/of bewerkt

Nadere informatie

Javascript oefenblad 1

Javascript oefenblad 1 Leer de basis van Javascript. Javascript oefenblad 1 Niels van Velzen Javascript oefenblad 1 Pagina 2 Inleiding Javascript is niet altijd even makkelijk. Vooral aan het begin is het even wennen hoe de

Nadere informatie

THUISWERKEN INSTELLEN VERSIE 1.2

THUISWERKEN INSTELLEN VERSIE 1.2 THUISWERKEN INSTELLEN VERSIE 1.2 Inhoud thuiswerkomgeving... 3 Installeren software op thuiswerkplek(eenmalig)... 5 Verbinding maken met de werkplek vanaf thuis... 9 Verbinding maken met de werkplek via

Nadere informatie

Naam: Sander van Schie Datum: 28-03-2014 Klas: SBICO-IB2 Doel: Uitleg Toegang tot vcloud Doelgroep: Nieuwe cursisten Versie: 1.0.0

Naam: Sander van Schie Datum: 28-03-2014 Klas: SBICO-IB2 Doel: Uitleg Toegang tot vcloud Doelgroep: Nieuwe cursisten Versie: 1.0.0 Naam: Sander van Schie Datum: 28-03-2014 Klas: SBICO-IB2 Doel: Uitleg Toegang tot vcloud Doelgroep: Nieuwe cursisten Versie: 1.0.0 1 Inhoudsopgave Inleiding... 3 Stap 1: Inloggegevens en wachtwoord...

Nadere informatie

HTML Graphics. Hans Roeyen V 3.0

HTML Graphics. Hans Roeyen V 3.0 HTML Graphics Hans Roeyen V 3.0 19 maart 2015 Inhoud 1. HTML5 Canvas... 3 1.1. Het Canvas element... 3 2. SVG Element... 9 2.1. SVG vergeleken met Canvas... 9 2.2. Een cirkel tekenen met SVG... 10 2.2.1.

Nadere informatie

Geert Dekkers Web Studio info@nznl.net +31(0)6 27 224 301

Geert Dekkers Web Studio info@nznl.net +31(0)6 27 224 301 Geert Dekkers Web Studio info@nznl.net +31(0)6 27 224 301 Persoonlijk Geert Dekkers, geb 1955, opleidingen in educatie en de kunsten. Programmeert websites sinds 1998. Als programmeur grotendeels autodidact,

Nadere informatie

Sparse columns in SQL server 2008

Sparse columns in SQL server 2008 Sparse columns in SQL server 2008 Object persistentie eenvoudig gemaakt Bert Dingemans, e-mail : info@dla-os.nl www : http:// 1 Content SPARSE COLUMNS IN SQL SERVER 2008... 1 OBJECT PERSISTENTIE EENVOUDIG

Nadere informatie

Interactief, real time security management

Interactief, real time security management P2000 en P2000LE SECURITY MANAGEMENT SYSTEEM Interactief, real time security management P2000 Security Management Systeem Schaalbaar, intuïtief en eenvoudig in gebruik Het Johnson Controls P2000 security

Nadere informatie

SURFconext Cookbook. Het koppelen van Alfresco aan SURFconext. Versie: 1.0. Datum: 8 december 2013. 030-2 305 305 admin@surfnet.nl www.surfnet.

SURFconext Cookbook. Het koppelen van Alfresco aan SURFconext. Versie: 1.0. Datum: 8 december 2013. 030-2 305 305 admin@surfnet.nl www.surfnet. SURFconext Cookbook Het koppelen van Alfresco aan SURFconext Auteur(s): Frank Niesten Versie: 1.0 Datum: 8 december 2013 Radboudkwartier 273 3511 CK Utrecht Postbus 19035 3501 DA Utrecht 030-2 305 305

Nadere informatie

Webapplication Security

Webapplication Security Webapplication Security Over mijzelf 7 jaar in websecurity Oprichter van VirtuaX security Cfr. Bugtraq Recente hacks hak5.org wina.ugent.be vtk.ugent.be... Aantal vulnerable websites Types vulnerable

Nadere informatie

Meehelpen met de ontwikkeling van nieuwe of verbetering van bestaande spellen. Pag. 1 www.edubas.nl

Meehelpen met de ontwikkeling van nieuwe of verbetering van bestaande spellen. Pag. 1 www.edubas.nl Meehelpen met de ontwikkeling van nieuwe of verbetering van bestaande spellen. Pag. 1 Versie 1.0 februari 2015 Start-versie Over dit document In dit document probeer is duidelijk te maken hoe de spellen

Nadere informatie

De voordelen van Drupal

De voordelen van Drupal Drupal is een open source Content Management System (CMS). Daarnaast kun je Drupal zien als een framework, dit betekent dat je modules (oftewel mini-applicaties) kunt implementeren in je installatie van

Nadere informatie

Hoe stel ik mijn favorieten en wachtwoorden veilig met LastPass en Xmarks?

Hoe stel ik mijn favorieten en wachtwoorden veilig met LastPass en Xmarks? Hoe stel ik mijn favorieten en wachtwoorden veilig met LastPass en Xmarks? Handleiding van Auteur: Jan Stedehouder Februari 2012 Hoeveel favorieten heb je in de webbrowser opgeslagen? En wachtwoorden?

Nadere informatie