Social Media Networks
Kan iemand mij wat meer vertellen over de werking van bijvoorbeeld Hyves, Facebook of Twitter? 't Is misschien een beetje een 'wilde' vraag waar natuurlijk niet iedereen antwoord op weet, zoals bij Argeweb (;-)). Maar ik ben toch benieuwd of er mensen zijn die contacten hebben met eventueel medewerkers bij Hyves (Lijkt mij voor Twitter en Facebook niet het geval).
Worden er bij zulke websites ook gewoon standaard Frameworks gebruikt? Of is de kennis zo danig groot dat ze alles zelf ontwikkelen. En ook ben ik er erg benieuwd naar of ze gewoon de 'standaard' dingen toepassen zoals PHP (OOP) en MySQL databases. Of zitten er echt 'servers' achter die veel denkwerk op zich nemen? Misschien leuk om wat stukken code met elkaar te delen die eventueel worden toegepast op één site zoals Twitter?
Is er iemand die er mij meer over kan vertellen? Vooral omdat het mij leuk lijkt om eens een systeem te schrijven zoals Twitter. Hyves en Facebook is onmogelijk te doen in je eentje in een relatief korte tijd.
Sinds kort is het nieuwe medium Heello gelanceerd wat eigenlijk de opvolger is van Twitter door de oprichter van Twitpic. En het valt mij op dat dit in een super korte tijd is neergezet, want de eigenaar van Twitpic heeft deze plannen nog niet zo lang. Natuurlijk weet niemand of er op de achtergrond is gewerkt aan het systeem.
En nee, ik ga niet de makers mailen om deze info. Want anders had ik de vraag niet hier gesteld ;-)
http://technologie.hyves.nl, lees het forum eens door ;-). Ik meen dat ze Kohana gebruikten die ze flink aangepast hebben.
Voor Tweakers: Lees hun .plans eens door op hun site
Voor Hyves: Voor Tweakers: Lees hun .plans eens door op hun site
Gewijzigd op 11/08/2011 16:15:40 door - Ariën -
Aar bedankt voor de link en tip!
Tweakers.net heeft iets van 18 servers.
Hyves heeft er rond de 3.000, voornamelijk vanwge de vele requests, en de opslag van de blogs, leden, krabbels etc...
Nu.nl heeft er een stuk of 8, voornamelijk omdat alles statisch afgeleverd wordt.
Facebook is in PHP herschreven, maar wordt versneld door alles om te zetten naar C++ of C#. Aantal servers: no idea...
En verder, tja.... weet ik het niet meer ;-)
Gewijzigd op 11/08/2011 16:29:09 door - Ariën -
Aar bedankt voor de info. Hyves heeft inderdaad veel servers. Wat bedoel je precies met de 'statische aflevering' van NU.nl?
Dat alles niet bij de view steeds gerenderd wordt.
Want ze hebben de username ook in de URL staan; twtitter.com/aar
Hoe kan hun Framework dan inzien of het om een gebruiker of om een pagina gaat?
Gewijzigd op 11/08/2011 17:02:31 door PHP Scripter
Vanwaar die interesse eigenlijk in frameworks van andere sites?
Ik durf te wedden dat zo'n route ook met CI of ZF mogelijk is, maar wat Twitter gebruikt, tja... ik zou het niet weten.
Misschien kan je zelf een wat initiatief nemen en eens wat zoeken over 'behind the screens by twitter'. Met wat zoekwerk vind je misschien wat interessants.
Ik verwacht trouwens niet dat iemand die hier op phpHulp bij Twitter werkt, en zo ja, dan is die kan zeer klein.
Gewijzigd op 11/08/2011 17:54:37 door - Ariën -
Statistieken + datacenter van Facebook:
http://www.youtube.com/watch?v=bCZwgtC_TZA&feature=related
en een datacenter van Google:
http://www.youtube.com/watch?v=zRwPSFpLX8I&feature=related
Je haalt in je bootstrapper alle gebruikers op, en maakt dan alle routes aan op basis van de naam.
Als je veel users hebt wordt dat wel heel traag, daar zul je dus een nieuwe manier op moeten verzinnen.. Die weet ik wel, maar die vertel ik niet :-)
Daarnaast misschien nog een leuk weetje, markplaats draait op JAVA.
Niels Kieviet op 11/08/2011 20:36:15:
Zo'n url is niet heel moeilijk hoor.
Je haalt in je bootstrapper alle gebruikers op, en maakt dan alle routes aan op basis van de naam.
Als je veel users hebt wordt dat wel heel traag, daar zul je dus een nieuwe manier op moeten verzinnen.. Die weet ik wel, maar die vertel ik niet :-)
Daarnaast misschien nog een leuk weetje, markplaats draait op JAVA
Je haalt in je bootstrapper alle gebruikers op, en maakt dan alle routes aan op basis van de naam.
Als je veel users hebt wordt dat wel heel traag, daar zul je dus een nieuwe manier op moeten verzinnen.. Die weet ik wel, maar die vertel ik niet :-)
Daarnaast misschien nog een leuk weetje, markplaats draait op JAVA
En PHP...
Wat bedoel je? Hoe dat er in PHP uitziet?
Ik zie de .php extentie, en pas geleden kwam ik nog ergens een typische PHP-foutmelding tegen, op creatieve wijze, welke een bugje bleek te zijn.
Gewijzigd op 11/08/2011 20:50:53 door - Ariën -
Niels Kieviet op 11/08/2011 20:36:15:
Je haalt in je bootstrapper alle gebruikers op, en maakt dan alle routes aan op basis van de naam.
Als je veel users hebt wordt dat wel heel traag, daar zul je dus een nieuwe manier op moeten verzinnen.. Die weet ik wel, maar die vertel ik niet :-)
Als je veel users hebt wordt dat wel heel traag, daar zul je dus een nieuwe manier op moeten verzinnen.. Die weet ik wel, maar die vertel ik niet :-)
Wie A zegt, moet ook B zeggen Niels... vertel!
Oh, ik hoorde pas geleden dat ze helemaal over zijn gegaan op JAVA.. Zelfs de frontend. Maar het zou best kunnen dat het op dit moment nog niet geïmplementeerd is, en dat het later komt.
@Ozzie..
Ik zal alleen deel A vertellen..
Ik heb het wel in ZF gemaakt, dus wanneer je een andere framework gebruikt moet je het zelf maar even aanpassen:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
// Je zou eventueel een cache kunnen maken zodat je niet altijd alle users moet laden, wat natuurlijk ongelofelijk veel tijd kost. (Nu even zonder)
$users = new Table_Users();
foreach ($users->getUsers() as $user) {
$route = new Zend_Controller_Route_Route($user->username . '/*',
array(
'controller' => 'user',
'action' => 'index',
'viewtype' => 'user'
);
$router->addRoute('...', $route);
}
?>
// Je zou eventueel een cache kunnen maken zodat je niet altijd alle users moet laden, wat natuurlijk ongelofelijk veel tijd kost. (Nu even zonder)
$users = new Table_Users();
foreach ($users->getUsers() as $user) {
$route = new Zend_Controller_Route_Route($user->username . '/*',
array(
'controller' => 'user',
'action' => 'index',
'viewtype' => 'user'
);
$router->addRoute('...', $route);
}
?>
Je moet nog wel even aan controles enzo denken.. En niet vergeten om je router te definieren.. Die kan je uit de frontController plukken.
Gewijzigd op 11/08/2011 21:01:55 door Niels K
Huh... dit is toch standaard? Ik bedoelde die nieuwe manier van jou....
Maar ik heb wel wat oplossingen voor je:
- Een tabelletje met alle urls
- Vollop cachen
- Een cron waarin je elke keer de url's opnieuw aanmaakt. (Laat je elke 15 min lopen)
Ik dacht eigenlijk dat je een oplossing had voor dit
"Als je veel users hebt wordt dat wel heel traag, daar zul je dus een nieuwe manier op moeten verzinnen.. Die weet ik wel, maar die vertel ik niet :-)"
Je zou zoiets kunnen zeggen... als het maar 1 argument is dan is het automatisch een user... en die specifieke user haal je uit de database. Of bedoel je dat niet?
Je kan het met 1 argument doen, maar de vraag is of je dat wilt.. Als je per ongelijk iets intikt krijg je.. Deze gebruiker kan niet gevonden worden of iets in die zin.
Daarnaast, doet twitter dat ook helemaal niet.. Bekijk maar eens een paar URL's van hun.. :)
Ja daarom zei ik ook.. Wanneer je elke keer opnieuw de url's aanmaakt wordt dat heel traag bij heel veel gebruikers.. Daarom had ik het ook over alternatieve manieren.
Zit jij met zo'n probleem dan?
Stel je hebt deze route:
www.mijnsite.nl/autos/ford/ka
Hoe weet ZF dan bijvoorbeeld dat autos een controller is en ford en ka variabelen zijn? Hoe matcht ie dat? Dat vind ik wel mooi gedaan :)
Um standaard, is de eerste parameter de controller en de twee parameter de action.
Wanneer je geen tweede parameter opgeeft pakt hij standaard de index action van de desbetreffende controller.
Met Zend_Route kan je ook nog aangepaste routes opgeven. Wanneer die route in de url wordt aangeroepen wordt hij naar de door jouw opgegeven controller en action doorgestuurd.
Zo kan je dus heel flexibel, hele mooie routes genereren.