URL Shortener algoritme?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

PHP Developer Scrum

Over de werkgever: WR zoekt voor een vaste medewerker voor de volgende werkgever, je treedt gelijk in dienst bij deze werkgever: Deze werkgever is een grote muziekwinkel. Ben jij een enthousiaste PHP-developer? Heb je kennis van Symfony? Vaste baan: PHP Developer Scrum Symphony 2.600 - 3.800 PHP Developer Deze werkgever is de grootste online muziekwinkel van de Benelux, en de toekomstig grootste muziek-winkel van Europa. Met honderdduizenden pakketten die jaarlijks verstuurd worden en miljoenen unieke bezoekers per jaar zijn zij marktleider in de Benelux op het gebied van licht, geluid, muziekinstrumenten, produceer- en DJ-gear. Deze werkgever heeft enkel gepassioneerde en

Bekijk vacature »

Full Stack Developer Javascript

Bij welk bedrijf je gaat werken: WR zoekt voor een vaste medewerker voor de volgende werkgever, je treedt gelijk in dienst bij deze werkgever: Wij produceren en leveren koemonitoringssystemen. Wil jij voor ons software ontwerpen en realiseren? Heb jij minimaal vijf jaar ervaring als full stack developer? Vaste baan: Full Stack Developer Javascript HBO 3.000 - 4.700 Full Stack Developer Ons bedrijf heeft met een team van gedreven collega’s een revolutie teweeggebracht in de wereld van koemonitoringssystemen. Met hun oor-sensortechnologie helpen we veehouders wereldwijd om de productiviteit en winstgevendheid van hun melkveebedrijf te verhogen. Bij bij hun werk je aan

Bekijk vacature »

Java developer

Het schrijven van software en applicaties die er echt toe doen, dit doe jij onder andere als Java developer. Wij zoeken een Java developer voor ons hoofdkantoor in Waalwijk voor 40 uur per week. Het schrijven van software en applicaties die er echt toe doen, dit doe jij onder andere als Java developer. De Mandemakers Groep, een huis vol mogelijkheden. Als Java developer werk je aan business applicaties, API’s en webservices die zowel binnen het bedrijf als door klanten en/of zakelijke partners worden gebruikt. Op deze manier kunnen we onze klanten nog beter bedienen en kunnen medewerkers hun werk eenvoudiger

Bekijk vacature »

C# .NET Software Ontwikkelaar Magazijnsystemen

Over het bedrijf: WR zoekt voor een vaste medewerker voor de volgende werkgever, je treedt gelijk in dienst bij deze werkgever: Deze werkgever levert integrale oplossingen voor logistieke processen. Wil jij software ontwikkelen voor magazijnsystemen? Heb jij ervaring met .Net en SQL? Vaste baan: C# .NET Software Ontwikkelaar Magazijnsystemen HBO WO 3.300 - 4.800 Software Engineer Ons bedrijf levert diverse integrale oplossingen om het logistieke proces aan te sturen van zowel nationaal- als internationaal toonaangevende bedrijven. Zij werken in een topsegment met vaktechnische uitdagingen. Daarnaast is er voldoende ruimte voor professionele ontwikkeling, zowel vaktechnisch als op persoonlijk niveau. Zij werken

Bekijk vacature »

Lead Developer Webapplicaties

Over het bedrijf: WR zoekt voor een vaste medewerker voor de volgende werkgever, je treedt gelijk in dienst bij deze werkgever: Wij helpen bedrijven digitaliseren met weboplossingen en bedrijfsdoelstellingen te behalen met online marketing. Ben jij een lead developer? Heb je ervaring met het ontwikkelen van websites en applicaties in WordPress en/of Laravel? Vaste baan: Lead Developer Webapplicaties JavaScript 4.000 - 5.200 Lead Developer Als creatief digitaal bureau maken wij websites en softwareapplicaties op maat. Ook complexere projecten gaan we niet uit de weg. Zij werken voor MKB klanten. Deze werkgever heeft veel verschillende projecten. Houd jij van afwisseling? Dan

Bekijk vacature »

Back-end Ruby ontwikkelaar

Zoek jij een baan in een unieke branche? Ligt jouw passie bij het ontwikkelen van Back-end Ruby applicaties en wil je in een leuk team werken? Dan past de functie van Back-end Ruby ontwikkelaar perfect bij jou. Ter ondersteuning van de afdeling Engineering zijn wij op zoek naar een Back-end Ruby ontwikkelaar voor 40 uur per week. Back-end Ruby ontwikkelaar Wat ga je doen? Je bent verantwoordelijk voor het ontwikkelen en onderhouden van casino systemen in de cloud. Je komt te werken in een team met een zeer brede kennis van ontwikkelen. Denk hierbij aan Hardware, Front-end, Back-end ontwikkeling in

Bekijk vacature »

(Junior) Magento developer

Bedrijfsomschrijving Ben jij een (junior) Magento developer en wil jij bij één van de beste E-commerce organisaties van Nederland werken? Dan krijg je nu de kans om bij deze organisatie aan de slag te gaan! Dit bedrijf bouwt de beste webshops van Nederland voor zowel corporate organisaties als MKB bedrijven. Werknemers ervaren de werksfeer als informeel en erg prettig. Daarnaast kent de organisatie zeer goede arbeidsvoorwaarden die je persoonlijk kan aanpassen afhankelijk van jouw wensen! Heb jij ervaring met PHP? Dan ben je ook welkom! Functieomschrijving In de functie van Magento developer ben je veel bezig met de Backend. Dit

Bekijk vacature »

Python Backend Developer Software

Voor wie je gaat werken: WR zoekt voor een vaste medewerker voor de volgende werkgever, je treedt gelijk in dienst bij deze werkgever: Wij bouwen toekomstbestendige applicaties. Ben je eerder werkzaam geweest als backend developer? Heb je ervaring als software ontwikkelaar? Vaste baan: Backend Developer Software IT 3.000 - 4.800 Backend Developer Wij ondersteunen bedrijven bij het ontwikkelen van hun software. Dankzij onze ervaring in binnen- en buitenland en onze grondige analyses kunnen wij onze klanten de beste oplossingen bieden. Zij werken voor MKB klanten. Deze werkgever heeft veel verschillende projecten. Houd jij van afwisseling? Dan zit je bij hun

Bekijk vacature »

Android Mobile Developer

Android Mobile Developer Den Haag HBO/WO IT - software development Professional "Maak samen met ons de 'Last Mile' bezorging van PostNL mogelijk door als Android developer de beste software te bouwen voor onze Android apps" Wat ga je doen? Als Android developer kom je te werken bij het platform Field Services. Met dit platform slaan we een belangrijke weg in wat betreft onze 'Last Mile' dienstverlenging. We ontwikkelen hier de apps en toepassingen die onze bezorgers gebruiken in de laatste fase van het distributieproces, welke toegankelijk zijn voor bezorgers door middel van Handhelds. Je komt te werken in een engineering

Bekijk vacature »

Senior Java 8 Developer in High-Tech Industry

Is your interest triggered by software and in particularly Java? Do you have at least 8 years of experience with Java in a High-Tech Industry? Then you could be the perfect candidate. Our client is looking for an senior Java Developer, in Eindhoven, The Netherlands. Functie You will be end-to-end responsible for creating software in Java and Java EE, contributing to the development of several diagnostic applications in a scrum/Agile way of working. Diagnostic & Sequencing applications is done in several teams working together to deliver and integrate solutions to complex problems to enhance the diagnostic capabilities for our customers.

Bekijk vacature »

3rd line Application Support Analyst

FLEETCOR is a leading global provider of corporate payment products to over 800,000 businesses around the world, from North, to Europe, Africa and Asia. FLEETCOR is one of the 250 fastest growing companies in the world in Forbes prestigious annual rankings. We have developed an extremely successful and innovative company based on our core principles; determination, drive, industry leading products, and quality people. We operate across over 30 brands globally including Travelcard in the Benelux. For the role of 3rd line Application Support Analyst we are seeking someone to join the WCE IT team. You will be working from our

Bekijk vacature »

Senior Software Engineer

Ons aanbod Werken voor Veynex Embedded Software betekent : Werken aan uitdagende state-of-the-art projecten Hybride werken 60 % thuis en 40 % op kantoor Flexibele werktijden 32 tot 40 uur per week Faciliteren kantoor aan huis Thuiswerk- én onkostenvergoeding Arbeidscontract voor onbepaalde tijd Bovengemiddeld salaris Ruime en flexibele mobiliteitsregeling Vergoeding voor bedrijfsfitness Ruim ontwikkelbudget voor opleiding en coaching Deelnemen aan de nodige social events Uitstekende secundaire en tertiaire voorwaarden Én ..... Jij zoekt een inspirerende plek om te werken. Een uitdagende baan. De ruimte om écht iets te kunnen ondernemen. Jij zoekt een mooie baan in de techniek. In onderzoek

Bekijk vacature »

Full stack developer

Lijkt het je leuk je ICT-kennis breed toe te passen in projecten die zowel technisch uitdagend als maatschappelijk relevant zijn? We zoeken een full stack developer om ons snel groeiende, internationale team te versterken. Als full stack developer help je mee om applicaties te ontwikkelen en te verbeteren, op zowel de front-end als de backend. Dit kunnen zowel IT oplossingen zijn in onze ingenieursprojecten als interne applicaties waarmee bedrijfsprocessen worden gedigitaliseerd. Je bent betrokken bij het ontwerpen, ontwikkelen en testen van de webapplicaties. Je zal zowel zelfstandig als in teamverband kwalitatief goede software producten realiseren, waarbij je volop ruimte krijgt

Bekijk vacature »

PHP Software Backend Developer Laravel

Over de werkgever: WR zoekt voor een vaste medewerker voor de volgende werkgever, je treedt gelijk in dienst bij deze werkgever: Wij bouwen webshops op maat. Ben jij geschikt als Software Backend Developer? Heb je ervaring met MVC? Vaste baan: PHP Software Backend Developer Laravel MBO 3.000 - 4.250 PHP Software Backend Developer Wij bouwen webshops op maat! Wees vindbaar en verhoog conversie met een aantrekkelijke en gebruiksvriendelijke webshop! Maatwerk. Gebruiksvriendelijk. Unieke webshops. Zij werken voor MKB klanten. Deze werkgever heeft veel verschillende projecten. Houd jij van afwisseling? Dan zit je bij hun goed! Wat houdt de functie precies in?:

Bekijk vacature »

PHP Webdeveloper JavaScript

Voor wie je gaat werken: WR zoekt voor een vaste medewerker voor de volgende werkgever, je treedt gelijk in dienst bij deze werkgever: Deze werkgever is een reisorganisatie. Ben jij een enthousiaste webdeveloper? Heb jij ervaring met PHP? Vaste baan: PHP Webdeveloper JavaScript Symfony 3.000 - 4.500 Webdeveloper Deze werkgever is een reisorganisatie en richten ons vooral op de reiziger die kiest voor een hoge mate van luxe, comfort, kwaliteit, service en flexibiliteit. Bij deze organisatie krijgen medewerkers veel verantwoordelijkheid, is er ruimte voor eigen initiatief en ontplooiing en het uitbreiden van uw vakkennis staat centraal. Deze werkgever is een

Bekijk vacature »

Pagina: « vorige 1 2

Kees Schepers

kees Schepers

19/04/2012 15:54:55
Quote Anchor link
Haha een key->value db is juist noSQL (key/value store) :p Kijk naar Redis bijv.
 
PHP hulp

PHP hulp

27/05/2022 21:23:37
 
Pim -

Pim -

19/04/2012 15:57:10
Quote Anchor link
Ja ok, maar volgens mij wordt er meestal CouchDB of MongoDB oid mee bedoeld en ik dacht dat jij het ook daar over had. Maar we begrijpen elkaar ;)
 
Kees Schepers

kees Schepers

19/04/2012 16:06:03
Quote Anchor link
Redis is ook niks mis mee hoor? Gebruiken we hier om view stats mee bij te houden. Maar CouchDB / MongoDB zullen vast ook goed zijn..
 
Pim -

Pim -

19/04/2012 16:08:57
Quote Anchor link
Nee, ik bedoel juist dat als je alleen dit wil doen, me Redis oid beter lijkt dan iets als CouchDB.
 
Wouter De Schuyter

Wouter De Schuyter

19/04/2012 16:14:41
Quote Anchor link
- SanThe - op 19/04/2012 15:34:04:
Als het in een database staat zou ik het zo ongeveer doen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
do
{
    // genereer code
    // SELECT code

}
while (mysql_num_rows() == 1);
// INSERT code
?>


Codes blijven genereren tot dat hij niet gevonden werd?
Hoelang kan zo iets duren als je bv 10.000.000 codes in je DB hebt?
 
Pim -

Pim -

19/04/2012 16:27:04
Quote Anchor link
Wat is er mis met SanThe's script zonder hash of mijn script met hash? Dat is toch veel fijner/sneller/makkelijker/beter?
 
- SanThe -

- SanThe -

19/04/2012 16:29:06
Quote Anchor link
Ik denk nooit in 10.000.000 records. In zo'n geval moet je Chris zijn manier nemen lijkt mij.
 
Pim -

Pim -

19/04/2012 16:49:51
Quote Anchor link
Dan heb je nog steeds een probleem bij het maken van 10 miljoen unieke records.

Als je gewoon het ID naar een string omzet, heb je ook nog het voordeel dat je begint met kleine strings.
 
Wouter De Schuyter

Wouter De Schuyter

19/04/2012 22:19:46
Quote Anchor link
Pim, ik snap je oplossing gewoon niet echt. Het is een URL shortener en de hashes moeten klein en onvoorspelbaar blijven he?
 
Pim -

Pim -

19/04/2012 22:30:31
Quote Anchor link
Opzich is het heel simpel:
Encode de ID naar een string, zodat je het kort kan houden.

Mijn script heeft dan nog een extratje, waardoor het 'onmogelijk' is URLs te raden. Zo kan je bijvoorbeeld afgeschermde pagina's maken, zoals youtube dat doet.

Het werkt als volgt:
Neem het ID
Maak een hash:
hash = ID * privatekey (dit maakt een groot, onvoorspelbaar nummer)
% (modulo) hashlength.
De modulo zorgt ervoor dat je een kleine hash overhoudt die random lijkt te zijn en bijna onmogelijk te raden is, maar toch makkelijk te berekenen.
De hashSize bepaalt de sterkte van deze beveiliging. Grote size is een betere beveiliging, maar ook langere strings.

Het uiteindelijke getal is dan
ID * hashSize + hash
Stel dat de hashsize dan 100 is, dan heb je gewoon de ID met een getal tussen de 0 en de 99 erachter.

Je hebt nu een getal dat je omzet naar basis 62 met een script zoals dat van SanThe. 62 wordt dan iets als 10 en 71 1a. De string wordt hierdoor heel compact.

Dit alles heeft als voordeel dat als mensen 1 URL krijgen/vinden, ze niet meteen alle verkorte URLs te pakken hebben, wat me niet ideaal lijkt.

Toevoeging op 19/04/2012 22:35:09:

Een hashSize van 1000, wat ervoor zorgt dat je gemiddeld 500 pogingen nodig hebt lijkt me voldoende. Uitgaande van basis 62 [a-zA-Z0-9] voegt dat maximaal maar 2 karakters toe (62log 1000 = 1.7). Je kan dan dus de eerste 1000 IDs in max 4 karakters kwijt en dan heb je ook nog een goede beveiliging. Lijkt me prima.
Gewijzigd op 19/04/2012 22:35:58 door Pim -
 

Pagina: « vorige 1 2



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.