[Vrijwillig] Postcode-database
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 ini_set 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
Gewijzigd op 01/01/1970 01:00:00 door - -
zie je e-mail inbox. ik kan je aan de volledige capaciteit bieden. inclusief de hosting (gratis)
http://postcode.terencehersbach.nl/ edit: pm me even als je meer info wilt
heb ik al: Gewijzigd op 01/01/1970 01:00:00 door Terence Hersbach
(p.s. er zit een foutje in je foreach loop)
heel erg actueel is hij niet. Ik wilde in de toekomst zoveel mogelijk leden op dit forum een controle laten doen erop.
maar er staan nu 435691 postcodes in de db, zijn er zat dus :)
in de mijne heb ik er maar 6.137 maar dat zijn Postcodes plaatsnamen heb ik niet die zoek ik dus wel.
Ik werk op het werk met de Google maps API. Deze geeft onderandere de afstand terug tussen 2 postcodes.
Deze afstanden slaan we allemaal op in de database, welke langzamerhand een zeer grote omvang in gaat nemen. Daarnaast ben ik bezig dat systeem zo om te bouwen, dat we naast de afstanden tussen postcodes ook de (gemiddelde) afstand tussen 2 plaatsen kunnen berekenen, dus ook een postcode/ plaats/ straat database wordt daarmee opgebouwd.
Er zijn redelijk wat bezoekers op de website, nu al, welke ook vaak een aanvraag doen, voor een hypotheek offerte, waarvoor ze dus ook hun adres opgeven. Mbv Google controleren we de gegevens, en na deze controle (als postcode en adres niet overeenkomen, dan geeft die ook een fout aan) slaan we deze op.
Het is een wat langduriger proces, maar met die beperking op het aantal requests is dat wel een goede oplossing ook. Zo bouw je je database uit naar gelang de aanvragen die worden gedaan en de adressen die je hebt. Een complete database zal het waarschijnlijk nooit worden, maar dat is het leuke van werken met de Google API's, dat is ook niet nodig, bestaan gegevens nog niet, dan worden ze life opgezocht. Dat betekend ook dat nieuwe straten en dergelijke (dus nieuwe postcodes/ adressen) ook gewoon bekend zijn/ worden in het systeem, en dat je niet over een paar jaar met een verouderde versie zit.
dennis schreef op 16.06.2008 11:07:
zie je e-mail inbox. ik kan je aan de volledige capaciteit bieden. inclusief de hosting (gratis)
Dat zou echt geweldig zijn!
Terence schreef op 16.06.2008 11:17:
heb ik al: http://postcode.terencehersbach.nl/ edit: pm me even als je meer info wilt
Dat is helaas geen openbare volledige database...
dennis schreef op 16.06.2008 11:32:
@ terence het gaat hem er om dat het actueel is ik heb ook zo een database maar de nieuwe wijken enz staan er niet in.
(p.s. er zit een foutje in je foreach loop)
(p.s. er zit een foutje in je foreach loop)
Inderdaad.
Terence schreef op 16.06.2008 11:47:
@dennis, was er even mee bezig.. caching erop is wel handig ;)
heel erg actueel is hij niet. Ik wilde in de toekomst zoveel mogelijk leden op dit forum een controle laten doen erop.
maar er staan nu 435691 postcodes in de db, zijn er zat dus :)
heel erg actueel is hij niet. Ik wilde in de toekomst zoveel mogelijk leden op dit forum een controle laten doen erop.
maar er staan nu 435691 postcodes in de db, zijn er zat dus :)
Het zijn er inderdaad aardig wat, maar mijn postcode (9406EG) bijvoorbeeld staat er niet tussen.
dennis schreef op 16.06.2008 11:54:
in de mijne heb ik er maar 6.137 maar dat zijn Postcodes plaatsnamen heb ik niet die zoek ik dus wel.
Ok.
Robert_Deiman schreef op 16.06.2008 12:03:
@Jonathan en de rest
Ik werk op het werk met de Google maps API. Deze geeft onderandere de afstand terug tussen 2 postcodes.
Deze afstanden slaan we allemaal op in de database, welke langzamerhand een zeer grote omvang in gaat nemen. Daarnaast ben ik bezig dat systeem zo om te bouwen, dat we naast de afstanden tussen postcodes ook de (gemiddelde) afstand tussen 2 plaatsen kunnen berekenen, dus ook een postcode/ plaats/ straat database wordt daarmee opgebouwd.
Er zijn redelijk wat bezoekers op de website, nu al, welke ook vaak een aanvraag doen, voor een hypotheek offerte, waarvoor ze dus ook hun adres opgeven. Mbv Google controleren we de gegevens, en na deze controle (als postcode en adres niet overeenkomen, dan geeft die ook een fout aan) slaan we deze op.
Het is een wat langduriger proces, maar met die beperking op het aantal requests is dat wel een goede oplossing ook. Zo bouw je je database uit naar gelang de aanvragen die worden gedaan en de adressen die je hebt. Een complete database zal het waarschijnlijk nooit worden, maar dat is het leuke van werken met de Google API's, dat is ook niet nodig, bestaan gegevens nog niet, dan worden ze life opgezocht. Dat betekend ook dat nieuwe straten en dergelijke (dus nieuwe postcodes/ adressen) ook gewoon bekend zijn/ worden in het systeem, en dat je niet over een paar jaar met een verouderde versie zit.
Ik werk op het werk met de Google maps API. Deze geeft onderandere de afstand terug tussen 2 postcodes.
Deze afstanden slaan we allemaal op in de database, welke langzamerhand een zeer grote omvang in gaat nemen. Daarnaast ben ik bezig dat systeem zo om te bouwen, dat we naast de afstanden tussen postcodes ook de (gemiddelde) afstand tussen 2 plaatsen kunnen berekenen, dus ook een postcode/ plaats/ straat database wordt daarmee opgebouwd.
Er zijn redelijk wat bezoekers op de website, nu al, welke ook vaak een aanvraag doen, voor een hypotheek offerte, waarvoor ze dus ook hun adres opgeven. Mbv Google controleren we de gegevens, en na deze controle (als postcode en adres niet overeenkomen, dan geeft die ook een fout aan) slaan we deze op.
Het is een wat langduriger proces, maar met die beperking op het aantal requests is dat wel een goede oplossing ook. Zo bouw je je database uit naar gelang de aanvragen die worden gedaan en de adressen die je hebt. Een complete database zal het waarschijnlijk nooit worden, maar dat is het leuke van werken met de Google API's, dat is ook niet nodig, bestaan gegevens nog niet, dan worden ze life opgezocht. Dat betekend ook dat nieuwe straten en dergelijke (dus nieuwe postcodes/ adressen) ook gewoon bekend zijn/ worden in het systeem, en dat je niet over een paar jaar met een verouderde versie zit.
Dat is inderdaad voor projecten de beste opzet, maar stel je hebt een drukbezochte site, die dagelijks meer dan 15.000 requests heeft te verwerken? Of stel dat een host externe toegang blokkeert?
Daarnaast vind ik het fijn om zekerheid te hebben; mocht Google de voorwaarden veranderen, dan heb ik toch nog een database. Mocht Google off-line zijn (alles kan...) dan draait mijn site gewoon nog.
Daarnaast bespaart dit dataverkeer en laadtijden.
9406 EG
Bitse
Assen
Terence schreef op 16.06.2008 13:44:
@jonathan, spatie er tussen gebruiken:
9406 EG
Bitse
Assen
9406 EG
Bitse
Assen
Ah, oké ;-)
Quote:
Mocht Google off-line zijn (alles kan...)
Die kans is kleiner dan dat jij word getroffen door een neerstortend vliegtuig uit de 2de wereld oorlog bestuurd door een kangeroe met een "hup holland hup" petje op.
Jacco schreef op 16.06.2008 14:20:
Die kans is kleiner dan dat jij word getroffen door een neerstortend vliegtuig uit de 2de wereld oorlog bestuurd door een kangeroe met een "hup holland hup" petje op.
Quote:
Mocht Google off-line zijn (alles kan...)
Die kans is kleiner dan dat jij word getroffen door een neerstortend vliegtuig uit de 2de wereld oorlog bestuurd door een kangeroe met een "hup holland hup" petje op.
Daar heb je gelijk in ;-)
Maar nu back on-topic! Zijn er nog mensen die mee kunnen werken?
ik wil wel meewerken, ik heb 2 dedicated servers staan waar ik het op zou kunnen laten werken.
Stefan van Iwaarden schreef op 16.06.2008 14:34:
ik wil wel meewerken, ik heb 2 dedicated servers staan waar ik het op zou kunnen laten werken.
Dat zou prachtig zijn! Om hoeveel IP-adressen gaat het? En zou je je e-mailadres even door kunnen geven?
Alvast bedankt!
ik had daar nog niet eens over nagedacht, maar in totaal heb ik daar 5 ip adressen voor.
Google gaat het overigens ook niet zo prettig vinden als je dagelijks 200.000+ requests gaat doen denk ik :P
Voor de rest wil ik ook wel met de PHP kant helpen. Heb toch al redelijk wat ervaring met sockets opgebouwd, diverse projecten die hier gebruik van maken (ooit zelfs aan een telnet-spel bezig geweest, maar om zoiets stabiel te krijgen is niet zo simpel)
Je stuurt me maar een PM of een e-mail!
Wim
200.000 requests per dag gaat google niets van merken hoor, google heeft honderden, nee duizenden servers verspreid over de hele wereld staan.
Die requests, 15.000 per dag is niet erg veel hoor met een gewone internetverbinding. Daar merk je nauwelijks wat van. Je kan hem ook gewoon 's nachts aan laten staan en laten draaien.
Stefan van Iwaarden schreef op 16.06.2008 14:37:
ik had daar nog niet eens over nagedacht, maar in totaal heb ik daar 5 ip adressen voor.
Wow, dat zou enorm helpen!
Wim Mariën schreef op 16.06.2008 14:43:
Ik wil ook wel helpen. MAAR: ik ga mijn pc absoluut geen hele dag requests laten versturen naar google, want volgens mij sluiten ze mijn internetverbinding dan wegen DOS attacks...
Google gaat het overigens ook niet zo prettig vinden als je dagelijks 200.000+ requests gaat doen denk ik :P
Voor de rest wil ik ook wel met de PHP kant helpen. Heb toch al redelijk wat ervaring met sockets opgebouwd, diverse projecten die hier gebruik van maken (ooit zelfs aan een telnet-spel bezig geweest, maar om zoiets stabiel te krijgen is niet zo simpel)
Je stuurt me maar een PM of een e-mail!
Wim
Google gaat het overigens ook niet zo prettig vinden als je dagelijks 200.000+ requests gaat doen denk ik :P
Voor de rest wil ik ook wel met de PHP kant helpen. Heb toch al redelijk wat ervaring met sockets opgebouwd, diverse projecten die hier gebruik van maken (ooit zelfs aan een telnet-spel bezig geweest, maar om zoiets stabiel te krijgen is niet zo simpel)
Je stuurt me maar een PM of een e-mail!
Wim
Als je je PC niet volledig beschikbaar wilt stellen kan je instellen om bijvoorbeeld maximaal 5.000 requests per dag te versturen. Mocht je dat al te veel vinden, dan heb ik eigenlijk weinig aan jouw hulp...
Google zal er niks van merken, waarschijnlijk krijgen zij per minuut wel evenveel requests als wij dagelijks gaan maken, dus...
Ik denk dat ik de scripting zelf ga doen, dus bedankt voor je aanbod, maar dat gaat helaas niet door.
Stefan van Iwaarden schreef op 16.06.2008 14:46:
200.000 requests per dag gaat google niets van merken hoor, google heeft honderden, nee duizenden servers verspreid over de hele wereld staan.
Inderdaad.
Robert_Deiman schreef op 16.06.2008 14:58:
@Wim
Die requests, 15.000 per dag is niet erg veel hoor met een gewone internetverbinding. Daar merk je nauwelijks wat van. Je kan hem ook gewoon 's nachts aan laten staan en laten draaien.
Die requests, 15.000 per dag is niet erg veel hoor met een gewone internetverbinding. Daar merk je nauwelijks wat van. Je kan hem ook gewoon 's nachts aan laten staan en laten draaien.
Inderdaad...
Gewijzigd op 01/01/1970 01:00:00 door - -
je hebt een PM met m'n mail-adres :)
Erwin schreef op 16.06.2008 15:25:
je hebt een PM met m'n mail-adres :)
Oké, dankje! Ik neem aan dat je met 1 IP-adres meedoet?