Jump to content
php.lv forumi

krikulis

Reģistrētie lietotāji
  • Posts

    100
  • Joined

  • Last visited

Everything posted by krikulis

  1. ne rēķinot h/w cenas, amortizāciju etc ... ar collocation - ko darīsi, ka atsprāgs h/w 2os naktī jāņu naktī ?
  2. parastiem .lv cilvēkiem bieži nav kartes, kas der paypalam.
  3. Blitz, SigmaNet bez VPS tev nedos atsevišķu memcache, tādēļ, ka shared hostinga keisā nav iespējams nodrošināt memcache drošību. Gan jau var sarunāt menedžētu VPS :) Par tēmu - VPS. Pie tam, visi shared hostinga serveri .lv faktiski ir oversold un nevelk slodzes, kur vajag memcache :)
  4. 1kārt : faktiski klāstero "spēļu istabas" ietvaros tikai MMORPG, tādēļ, ka FPSiem/Racingiem parasti istabā ir relatīvi mazs spēlētāju skaits. Ja nemaldos, WoWam vienam realmam bija 1 backends un vairāki frontendi. Parasti tādos gadījumos spēle izmanto atsevišķu DB, kuru var arī load balancēt (klasikais MU Online izmanto MS SQL). CSam un lielākai daļai spēļu visa "loģika" ir iekš servera atmiņas dēļ latency palielināšanās pie ārēju resursu fetchošanas un jebkura pieklājīga kaste "pavelk" vienu istabu. 2kārt : open source risinājumi spēļu risinājumiem nav, jo lielākā daļa no jamiem ir propietary protokolu, kuru nevienam nav iekāriens load balancēt un jamos relīzot ir PITA dēļ patentētiem protokoliem. 3kārt : load balancēt var Layer 4 līmenī, Layer 7 load balancings / failovers ir stipri dārgāks "resursu ziņā" (ar papildus iespējām, t.sk. gudrā komunikācija ar backendiem (health checki, HTTP keep-alive utt). Attiecas uz 1ajā punktā minētajām spēlēm, kur ir atsevišķs backends, kurš storē loģiku. Izmantojam iptables, packet filter vai kādu no h/w dedicated h/w balanceriem. 4kārt Visi FPS hostingi griežās uz to, ka kastei ir vairākas IP adreses, uz kurām arī bindo atsevišķus serverus. Tā uz vienas kastes var griezt ntos FPS serverus. Tēmas autoram prbl ir vai nu mājas pieslēgums (kur var ISP nedot vairākas IP adreses) vai arī žēl pāris Ls par IP adresēm (kaut gan jebkurš load balanceris resursu ziņā apēd vairāk par pāris Ls), as nezinu nevienu .lv DC, kas nedotu pāris IP par ~2 Ls . Ar lielāku adrešu apgabala alokāciju var rasties problēmas, as RIPE neļauj lieki allokēt IP adreses :)
  5. j2b, kādā veidā HTTP reversie prokši var proksēt spēļu serverus ??? Īsā atbilde: nē, nevar. Garā atbilde: nē, nevar, jo: a) nav "inteliģentu" reveršo prokšu, kas saprastu spēļu (CS ? LOL) protokolus :) b) protokoli nesūta hostneimu uz kura konektējas, bet izmanto IP adresi.
  6. Dooh ... īsti veči lieto ancient tizlas funkcijas, kam raksta tikpat tizlus wrapperus ... :-> p.s. PDO galīgi nav funkcionālas developēšanas paradigmai piemērots <O>
  7. Brīvā improvizācija par tēmu /** Izpilda vaicaajumu un pie katras rindas izpilda callback. Man naff ne jausmas kaa php kaut ko asinhroni izpildiit, taadeelj risinaajums principaa ir bezjeedziigs, tiiri pirkstu virinaashanai. principaa izmanto globaalo mysql linku, kas ir patizli, bet man ir lauziens rakstiit visu mysql wrapperi funkcionaali, kas savukaart dotu shaadaas taadas priekshrociibas. Principaa uzskatu, PHP prieksh FP sachko. Demonstree teoreetiski shaadads funkcionaalaas programeeshas iespeejas: closures, anoniimaas funkcijas :) Taa kaa man naff php uz datora un ir lauziens instaleet, tad kods naff notesteets. (php kauchkur jaavelk, jaakompileee, etc... ). lauziens. Laidiisies tikai uz 5.3++ izmantoshanas piemeers vareetu buut shaads: super_q("SELECT * FROM TABLE", function ($data) { echo "<tr>"; $row = function($item){ echo "<td>" . htmlspecialchars($item) . "</td>"; } array_walk($row, $data); echo "</tr>"; }, function (){ echo "<table>"; }, function (){ echo "</table>"; }, function ($error, $number){ ECHO "EPIC FAIL($error)[$number]"; }); */ function super_q($query, $onData, $onStart = NULL, $onEnd = NULL, $onFail = NULL){ $result = mysql_query($query); if ($onFail){ $fail = function() { $onFail(mysql_error(), mysql_errno()); } } else { $fail = function() { } } if ($onStart){ $start = function () { $onStart(); } } else { $start = function () { } } if ($onEnd){ $end = function () { $onEnd(); } } else { $end = function() { } } if $result === false { $fail; } $started = false; $walk_mysql = function (){ while($row = mysql_fetch_assoc($result)){ $onData($row); } } $start(); $walk_mysql(); $end(); } es gan taisiitu OOP variantaa, as tad var ieimplementeet interfeisus itereeshanai etc, kas paveertu shaadas smukas iespeejas... <?php foreach(new Query("SELECT * FROM TABLE") as $row){ var_dump($row); } if (count(Query("SELECT count(*) FROM table")) > 0){ echo "YO"; } ?>
  8. krikulis

    PDO with MySQL

    Kāds registry ? Ja izmantojam ietvaru, izmantojam ietvaru DB abstrakcijas klasi, a tā neredzu jēgu wrappot PDO - pie inicializācijas iebāžam konteinerī (aļa registry pattern) ar visu DSN un tālāk strādājam ar tiešu. Var uztaisīt delegāta / singleton miksējumu un rullēt tā.
  9. Ja pareizi sapratu SELECT count(*), author, MONTH(date) FROM news n INNER JOIN authors a ON n.author_id = a.id GROUP BY month(date), author_id; struktūra un testa dati
  10. !!!Variaabljus eskeipot ar HtmlSpecialChars() Like $tqq=mysql_query("SELECT * FROM themes WHERE id=".S($t_id)) or exit; $data1 = mysql_fetch_assoc($tqq); echo ' Rediģēt tēmu:<br /> <form name="input" action="/addtheme/" method="post"> Tēmas nosaukums:<br /> <input type="text" name="t_name" value="'.htmlspecialchars($data1['t_name']).'" size="20" /><br /> Tēmas autors:<br /> <input type="text" name="t_author" value="'.htmlspecialchars($data1['t_author']).'" size="20" /><br /> Tēmas saturs: <br /><textarea id="t_content" tabindex="3" rows="10" cols="50%" name="t_content"" >' . htmlspecialchars($data1['t_content']) . '</textarea><br /> <br /><input type="submit" value="Apstiprināt" /> </form> <form> <input type="submit" value="Atcelt" action=""> ';
  11. suhosin iipashi neko nepaliidz shared hosting`aa, kur lielaaakaa probleema ir tas, ka ir jaanojailo klients un nedriikst ljaut vinjam tikt pie citu klientu datiem. Safe mode `n` co sax bai default :> suPHP balstaas uz CGI => performance sax haard. Labaaks keiss ir chrootots FastCGI process un mod_fcgi :> Ja ir liikas rokas sakonfot FastCGI apache, tad labaak izmantot mpm-itk moduli + mod_php, kas visu apache child`u seteuid(2) un jams smuki griezjaas ar klienta juuzera `n` grupas privileegjijaam, pieliekot klaat MAC pasaakumu klients nekur aarpus saviem datiem netiek un nekaadas liikus kodus, kas ljaut noexploiteeties liidz r00t, nevar izpildiit. Lieliem projektiem ar biezjiem pieprasiijumiem datubaazei (it iipashi ierakstiishanai) labaak noalgot DBA, jo pat MySQL ir jaapiekonfo prieksh write-heavy workload`a. SQLite rox prieksh daudz kaa (hint: SQLite datubaazes arii var tureet RAMaa un ar maziem datu apjomiem daljaa keisu izkozj MySQL performaces jautaajumos). s/serveri/daemons/ SQLite var iizii nokorupteet jamo caur DRDB / NFS lietojot Galu galaa SQLite datubaaze ir fails un jams dependojas no failsisteemas stabilitaates :> PHPMyadmin ir tikai MySQL datubaazeem, tev ir jaajuuzo kaads no SQLite web frontendiem Respectah, K^2
  12. In house monitorings, jo monitorēt ir ko vairāk kā prastu HTTP ... zabbix, cacti, munin pašam vislabāk tīk munin, jo jams ir tups kā pagale.
  13. krikulis

    cURL

    Jaa, cookijus pieseivot var kjipa shitaa curl_setopt($curl_handle, CURLOPT_COOKIEFILE, 'cookiefile.txt'); curl_setopt($curl_handle, CURLOPT_COOKIEJAR, 'cookiefile.txt'); vispaar stipri eertaak ir straadaat ar http://www.php.net/http
  14. if(top !== self) top.window.location.href = self.location.href ielikt kādā no visur izmantotiem JS libiem (jQuery source f.e.) un miers.
  15. No sākuma iemācies kā SQL kverijus rakstīt / optimizēt, tad pie memkeša ķeries. SELECT u.username FROM online o INNER JOIN users u ON u.id = o.user_id to savukārt pārtaisot uz <?php if(!$online = memcache_get("online")){ $online = $pdo->query("SELECT u.username FROM online o INNER JOIN users u ON u.id = o.user_id")->fetchAll(); memcache_set("online", $online, 600); }
  16. E-pasts ar GMail galā recruitingam -> neprofesionāli. Uzņēmums meklē, uzņēmuma e-pastu arī lieto.
  17. Cepumiem var likt ceļus, kuros jamie ir aktīvi (netiks klāt +document.cookie) CSRF pasargās + referera čekošana datu postošanai.
  18. kirils savu sms.id.lv tur noslēpumā un pēc disclosed info tur arī h/w ir vajadzīga (prbl exploito bugu kkur). daži gudrenieki darbojas uz bifri / bites tālruni ar unlimited SMS kā GSM modemu un sūta caur jamo(prbl jūzo linuxi `n` kanel). Subsetam no mob. tel. numuriem var sūtīt e-pastu, kas redirektējas uz sms. Bet, piem, lmt nevar no numura e-pastu izpīpēt. Vēl var izmantot operatoru web formas un lauzt captchas ar OCRu . Principā, iespējams, bet lēni :) Daļa no mārketinga (kopš kura laika spams ir mārketings) kantoriem piedāvā sūtīt sms no jamo lapas, vācot "mārketinga" datubāzi (rofl).
  19. es paņemtu supervisord (http://supervisord.org/) uzrakstītu php/whateva skriptu, kas sēž atmiņā un dara visu, ko vajag. mazā intervālā laižot cron var uzrauties uz race conditioniem u.c. jaukām lietām. marcis, alx.f1.lv nav apskatīta tāda jauka lieta kā procesu restarts, startēšana pie reboota, monitorings (ja nu pakaras, nosprāgst utt). Me personīgi screen izmanto, lai pie norautām ssh sesijām varētu restorēties atpakaļ.
  20. http://php.net/dom http://php.net/pcre Pirmais variants ir labāks, bet tizla html gadījumā bieži vien nesanāk. Var mēģināt pirms tam izlaist caur http://php.net/tidy
  21. Te daži jauc valodu ar frameworku. IMO, gan ntajos PHP(Zend, CakePHP, CodeIgniter, Kohana..), gan ntajos Python(Django, web.py, Zope), gan ASP.NET, gan ntajos Javas(strutas, spring, wickets), gan ntajos ruby (ķipa Rails) freimworkos var realizēt +/- to pašu, mainās tikai izstrādes ātrums atkarībā no valodas. Un stateless / stateful valodas (php/python vs java / asp.net) nav liekamas vienā maisā - izmantošanas profils ir dažāds.
  22. Var, bet nedrīkst :) //Arī vārdiem, ne tikai HTML elementiem ir sava semantika :>
  23. krikulis

    jquery $_GET

    http://www.mathias-bank.de/2007/04/21/jquery-plugin-geturlparam-version-2/
  24. NIC.LV, imo, arī varēja .com reģistrēt, tikai cipars bija TRAAKS :)
  25. sorry, x3. http proksis, socks4, socks5
×
×
  • Create New...