Hallo,
Ik ben van plan om een postcode-database te gaan maken en dan gratis aan te gaan bieden. Om alle informatie (postcodes, straatnamen, plaatsen, gemeentes, provincies en de coördinaten) te verkrijgen, gebruik ik de Google Maps API en/of de GeoNames Web Services en/of de REST API. De reden dat ik nog twijfel je via Google niet de plaatsnaam krijgt, via Geonames alleen op een postcode zonder letters kunt zoeken, en REST heb ik nog niet kunnen proberen, aangezien je daarvoor een e-mail moet sturen om de API-key te krijgen.
Waarom heb ik jou dan nodig? Dat is heel simpel, er zijn namelijk limieten aan het aantal requests per dag per IP-adres. Bij Google mag je per dag maar 15.000 aanvragen doen, bij GeoNames 50.000 en bij de REST API weet ik niet zeker of het gratis is. Als REST gratis is, is dat de beste optie, mocht dat niet zo zijn, dan is een combinatie van Google en GeoNames noodzakelijk.
Back on-topic: ik heb jullie nodig omdat je met 15.000 requests per dag eeuwig bezig bent. Als we uitrekenen hoeveel mogelijke postcodes er zijn in Nederland, kom ik zo uit op 6.084.000, en dat is behoorlijk wat. Natuurlijk zijn niet alle postcodes in gebruik, maar toch zullen ze allemaal gechecked moeten worden. Als ik dit in mijn ééntje zou doen, via mijn thuis-IP en het IP van mijn hostingpakket, zou ik 30.000 requests per dag kunnen doen, en zou ik er 203 dagen over doen. Dat is gewoon onmogelijk. Maar stel er zouden hier tien mensen zijn die mee willen helpen, die allemaal twee IP-adressen tot hun beschikking hebben, dan zouden we in 21 dagen - precies drie weken - klaar zijn. Dat is toch al iets realistischer.
Maar wat moet ik dan eigenlijk doen? Niet zoveel eigenlijk. Je moet straks op alle computers waarmee je mee wilt doen een paar PHP-bestandjes plaatsen, en via mijn webbased-administratie van dit project doorgeven wat de locatie (IP-adres en bestandsnaam) van die bestanden zijn, en je hebt de mogelijkheid om te zeggen dat je bijvoorbeeld maar 10.000 requests per dag wilt doen, zodat je nog wat overhoudt voor eigen gebruik. Ik ben nog niet zeker of je er een (MySQL-)database voor nodig zult hebben, dat ga ik nog even uitdenken.
En het dataverkeer dan? Tja, nu zeg je wat. Als we uitgaan van 1Kb per postcode, wat zeer ruim genomen is, dan zou je per dag per IP-adres maximaal 15Mb uitgaand dataverkeer gebruiken. Dan zal je aan het eind van de dag alle gegevens doorsturen, wat ook rond de 15Mb zal liggen. In één maand zou dat uitkomen op 930Mb, en dat is erg weinig. Neem een gemiddeld hostingpakket van twee tientjes per jaar, en je hebt maandelijks al 10Gb beschikbaar. Mocht je site zelf veel dataverkeer gebruiken, en je dus niet 930Mb overhebt, dan kan je dat straks instellen in het administratiesysteem. Mocht je ineens schrikken dat je dataverkeer op is, klik in het systeem gewoon even aan dat je deze maand ermee stopt, en that's it.
En mijn schrijfruimte dan? Aan het einde van de dag wordt alle data naar mijn server toegestuurd, die alles verwerkt en in de grote database zet. Kijkend naar het sommetje hierboven zal er dus maximaal 15Mb gebruikt worden, voordat het naar mij toe wordt verplaatst.
En mijn serverload dan? Ik weet persoonlijk niet zeker of uitgaande connecties erg veel serverload vragen, maar ik denk dat het op zich geen groot probleem moet zijn. Kijkend naar het aantal secondes per dag, en de maximale hoeveelheid van 15.000 requests per dag, kom ik erop uit dat je ongeveer elke 5 seconden een request moet doen.
Maar krijg ik dan elke 5 seconden ook nog eens een inkomende request van jouw server binnen? Ik ben nog niet zeker over de manier hoe ik dat wil gaan doen. Het mooiste zou zijn dat jullie cronjobs kunnen instellen, die elke 24 uur beginnen en dan met mijn server contact opnemen om een lijst met postcodes toegewezen te krijgen, maar niet iedereen heeft cronjobs. Daarom zou ik ook zelf een connectie kunnen starten die 24 uur openstaat, maar dat is waarschijnlijk ook niet perfect. Ik denk er nog over na, of mocht je een idee hebben, vertel het me.
Maar klopt de ingeschatte hoeveelheid dataverkeer wel? Het is puur een schatting, het kan best afwijken, eerder naar beneden dan naar boven. Ik ga later wat tests doen, en dan zal ik met preciezere gegevens kunnen komen.
Maar waarom zou ik meedoen? Samen kunnen wij zonder enige moeite, en met zeer lage kostenm, een database met postcodes creëren die voor veel mensen handig kan zijn. Zoals je mogelijk weet bestaat dit al, maar de laatst geupdate versie komt uit 2000 of zo, dus daar heb je niks aan. Commerciële alternatieven zijn zeer duur, dit is dus erg handig. Daarnaast komt je naam in de credits te staan, en zal heel de wereld je eeuwig dankbaar zijn =)
En hoe zorg ik dat de data betrouwbaar is? Inderdaad, mensen zouden mij kunnen vern**ken door allemaal onzin te sturen, die in de database terechtkomt. Ik ga per item in mijn grote database bijhouden door welke cliënt het verstuurd is, en laat door andere cliënts steekproeven doen. Hierdoor ontstaat een zo goed als waterdicht netwerk. Door de steekproeven gaat de serieuze capaciteit wel omlaag, maar zekerheid voor alles. Mocht ik bijvoorbeeld zien dat iemand elke dag weer onzin ervan maakt, dan is het met één klik verwijderd, en kan een andere cliënt het gaan doen.
Moet mijn PHP speciale instellingen hebben? Ik moet hier nog even over nadenken, maar waarschijnlijk zul je met de functie [php]ini_set[/php] wat in moeten stellen. Dit staat allemaal in het script dat je van mij krijgt, je hoeft er zelf dus niks voor te doen. Wel moet je server dit ondersteunen.
Hoe kan ik meedoen? Stuur even een e-mailtje naar [email protected] en geef even door met hoeveel IP-adressen je mee wilt doen, en alles komt goed.
Je hebt het nu steeds over 15.000, is de keus voor Google dan al gemaakt? Een beetje wel ga, die laatste optie, REST, is waarschijnlijk betaald. Daarom zullen we waarschijnlijk een combinatie van Google en Geonames gebruiken. Google heeft een limiet van 15.000 requests per IP per dag, en GeoNames 50.000 per IP per dag. Ik ga dus even kijken hoe we dit doen, waarschijnlijk wordt alles een beetje verdeeld...
Wanneer kunnen we beginnen? Nou, tot mijn schaamte moet ik bekennen dat de software van mijn kant nog niet af is, dus we kunnen niet direct beginnen. Voordat ik er echt werk van ga maken, wil ik namelijk eerst weten of er wel mensen zijn die mee willen doen, anders is het weggegooide moeite. Ik hoop dat indien er geïnteresseerden zijn, we volgende week kunnen beginnen, maar bij mij duurt alles langer dan verwacht ;-)
En hoe doen we het met updates? Als het hele idee een succes wordt, moet de database natuurlijk af en toe geupdate worden. Ik denk dat ik jullie hulp dan weer inroep, en dat we eens per kwartaal/half jaar weer opnieuw beginnen.
En wat ga jij met donaties doen? Mocht het een succes worden en mensen gaan doneren, dan zal ik als mijn eigen onkosten, namelijk de hosting van het project, vergoeden. Daarna zal ik wat apart gaan leggen, om in de toekomst te kunnen investeren in bijvoorbeeld een VPS of dedicated server, mocht het echt groot worden. De rest van het geld zullen we eerlijk delen, afhankelijk van de hoeveelheid requests die je hebt gedaan. Natuurlijk is er geen garantie dat er donaties binnenkomen, maar wie weet...
Ik woon in België, en ik wil dit ook! Als we eenmaal met Nederland klaar zijn, kunnen we besluiten om heel België ook te gaan doen. Natuurlijk kan je als je uit België komt gewoon helpen met de Nederlandse database, en andersom ook.
Met vriendelijke groet,
Jonathan Hogervorst.
Actuele status:
IP-adressen: 21/32*
Requests: 315.000/480.000*
Duur: 19/13* dagen
* sowieso/mogelijk
9.780 views