Jump to content
php.lv forumi

Roze

Administratori
  • Posts

    1,561
  • Joined

  • Last visited

Everything posted by Roze

  1. A kas DEAC par rādītāju ja jālieto "pat"? DEACam pašam kā tādam vispār trubas nav.. Vienīgie LV kas varētu "zīmēties" ar trubām ir Telecoms, Telia, Baltcoms un Latvenergo (nu varbūt vēl kāds pa klusiņām)..
  2. Nu tak tur pie funkcijas cilvēki kaudzēm komentārus sarakstījuši..
  3. Header("Location: ..."); ir parasts http headeris 302 (REDIRECT) kas padod Location parametru līdz ar to vienkārši redzams... Attiecīgi ja netiek veiktas nekādas manipulācijas (fails dzēsts/movots utt) un fails atrodas webroota var neatkarīgi vilkt kaut vai 100 reizes un ir pofig ka kaut kāds skrips ir updeitojis SQL tabulu, jo "header("Location: ".$data['location']);" jāatgriež fiziska faila lokacija.. Taču iespējams taisīt savādāk: 1. Ar to pašu php nevis taisīt header() bet gan ar readfile() ( http://lv.php.net/manual/en/function.readfile.php ) vai file_get_contents() pa taisno gāzt no php (fiziski fails var atrasties ārpus webroota).. 2. Lai nebūtu jātransfērē fails ar php (kas pēc idejas ir diezgan resursprasīgi) praktiski visiem webserveriem ir tā saucāma X-Sendfile fīča - kur ar php iespējams veikt kaut kāda veida autorizāciju / pārbaudi taču pašu failu sendot ar webserveri sūtīšanas mehānismu: Apache http://tn123.ath.cx/mod_xsendfile/ lighttpd un nginx sendfile ir iebūvēts.. Lightam un nginxam ir vēl pāris iespējas aka mod_trigger_b4_dl http://trac.lighttpd.net/trac/wiki/Docs%3A...rBeforeDownload vai mod_secure_download bet nu tākā taisies ar biznesu nodarboties nebūtu tākā korekti visu uz paplātes pasniegt :)
  4. Nejau vienam tev tas 1Gbit.. tu šārē ar x (10,100, ... ) citiem tādiem pašiem "5 ar kapeikām" maksātājiem :) AFAIK neviens vēl tāpatvien 1Gbit portus trunkā nedod (nerunājot jau par 2Gbs kam tad sterverim vajag 2 x 1Gb interfeisus bondingā vai 10Gbit) .. tākā tie tādi marketinga uzraksti..
  5. Roze

    SMS

    No šīs operas : http://www.1188.lv/sms_pakalpojumi/mobilais_marketings/ http://www.1188.lv/sms_pakalpojumi/sms_akcijas/
  6. Kas lūdzu ir "1Gbps hostings"? Afaik neviens tāpat no LIX 1Gbps portus vēl nedod/neizīrē.. Tas ka uz visu DC ir kaut kāda šķiedra neko nenozīmē..
  7. Roze

    Email

    Kurā galā IMAP rij daudz resursus? Uz servera vai klienta (šeit domāts e-pasta)? Pie zināmiem nosacījumiem (ja klientā eneiblo atstāt vēstules uz servera "Leave messages on server" (vai tiek izmantots tikai webclients)) ir pretēji, jo lielāka mailkaste paliek jo POP3 paliek lēnāks .. Itkā var teikt ka POP3 gadijumā mazāk drazas (lasi epastu) ir uz servera, bet nu tie resursa patēriņi ir diezgan minimāli (protams ja nesūta apkārt filmas kā attachmentus) - kaut kāds parasts desktops (un *ix) mierīgi var nodrošināt kādus pāris tūkstošu mailboxu ar pietiekamu mailu apjomu.. Bet nu ja _klientam_ liekas ka viņs ir gudrāks un nevajag fīčas (kā, piemēram, skatīt savu e-pastu neatkarīgi no atrašanās vietas vai ierīces (noklusēti POP3 visus mailus novelk lokāli, līdz ar to darbā apskatīts e-pasts mājās nebūs pieejams)) lai jau lieto POP3 no tehniskā viedokļa tas ir vienkāršs kā cirvis.. IMAP šajā gadijumā būtu motorzāģis :)
  8. Roze

    Email

    POP3 protokols nekad nav supportējis folderus.. Ar Maildir tam nav nekāda sakara jo tas ir vēstuļu storēšanas mehānisms lokāli uz mailservera (faktiski tam nav nozīmes Maildir, mbox vai kautvai MySQLs).. Protams tas neliedz uzrakstīt POP3 daemonu kas spēj visus folderus sagāzt kopā uz fetchoshanu un imitēt dzēšanu movojot uz piemēram uz .Trash .. Bet kāda problēma pop3 un imap darbināt reizē?
  9. Diezgan droši var teikt ka php ir viena no lēnākajām valodām jebšu pareizāk teikt risinājumiem :)
  10. 10 gadu laikā ķēpājoties ar visādiem risinājumiem (iekš java/php/c/python utt) gan enterprise gan small ar visādām iespējamām DBVS (aka oracle, mysql, db2, ms sql, pgsql utt) neesmu sastapis nevienu projektu kur: a) produkta/risinājuma darbības laikā ir radusies nepieciešāmība migrēt uz citu DB vidi b) ja šāda nepieciešamība tomēr ir radusies - parasti tas ir beidzies arī ar paša aplikācijas koda maiņu vai atteikšanos no tā vispār. Līdz ar to risinājumi, kuri piedāvā multi-db-backendu atbalstu visbiežāk aprobežojas tikai ar visādiem weblogiem/cms, jo enterprise tooļi parasti izvirza ļoti konkrētas prasības pret vidi (gan pret dbvs, gan hardwari utt). Uzskatu par diezgan muļķigu domu rakstot savus produktus sākt domāt par 10 DBVS produktiem. Pirms darba sākuma ir jāizvēlas viens visvairāk piemērotais un tad arī jāizmanto maksimāli visas tās iespējas.. Rakstīt generic kodu ir varbūt labi, bet tas nekad nebūs ātrākais. Kāpēc piemēram neizmantot LIMIT ja tāds ir pieejams? Kāpēc veidot 3 subselectus.. (ir gan protams redzēts kods kurā atkarībā no izmantotās db mainās SQL.. bet nut). Ja SQLite piedāvā inmemory DB pa taisno bez servera, kāpēc to neizmantot? Utt utt Nedaudz arī jāpasmīn par tiem DBVS, kas domāti "nopietnajiem" projektiem.. Lielākoties jau visiem ir identiskas iespējas viss atšķiras tikai faktā, ka vismaz līdz šim "nopietnajiem" DB produktiem līdzi nāk arī nopietni DBA (kas arī visu izšķir), jo sakarā ar to ka (piem Oracle gadijumā) produkts kā tāds maksā zināmas naudiņas un konkrētā DB admina sertifikāta iegūšana nav lēts prieks (līdz ar to faktiski atkrīt iespēja mirstīgam jūzerim/pokemonam to iekurbulēt) - un galā tas izskatās ļoti nopietni ;) Nezinu kā ar PgSQL (tur gan ir daži "forkoti" enterprise produkti, kas piedāvā apmācību/supportu), bet es pieņemu ka šajā sfērā Sun ar MySQL ar kaut ko izmainīs..
  11. Šitiem vājprātigajiem insertiem vienkāršāk ir lietot citu sintaksi.. nevis INSERT INTO table (field1,field2, ..... . .. .. ) VALUES (val1,val2, ..... ), bet gan INSERT INTO table SET field1 = 'value1', field2 = 'value2' , ...., field19 = 'value19'; var sakārtot arī: INSERT INTO table SET field1 = 'value1', field2 = 'value2', ...., field19 = 'value19';
  12. Kāds sakars šeit ir ar Oracle? Jebšu DBVS kā tādu vispār? Problēmas vai "caveati" uz visām DBVS ir pilnīgi identiskas - LOCKs arī Āfrikā ir locks... Un nebūs starpības vai tu LOCK table uztaisīsi uz MySQL / PGSQL / vai Oracles - funkcionāli un rezultāts ir viens un tas pats.. un oracle noēdis tavu mazo serveri vēl ātrāk.. Ir vienkārši no teorijas jāsaprot kas ir "blocking" un kas atomiskas / acid darbības - šeit noslodze pēc būtības nav nekāda - viens process nolocko pārējie gaida rindā.. :) Savukārt transakcijas neviens nav liedzis izpildīt vairākas uzreiz :)
  13. Actually MySQL _šāda_ fīča patiesībā ir un bez papildu lockošanas.. diemžēl tikai MyISAM tabulām.. Uztaisi tabulu uzliec primary keyu uz (client_id+order_id) tieši šādā kārtībā un autoincrementu uz order_id .. attiecīgi katram client_id būs savs autoincrments.. Tas ir aprakstīts arī http://dev.mysql.com/doc/refman/5.1/en/exa...-increment.html .. tur arī citas šīs fīčas iespējas un mīnusi. Vispār jau krietni vienkāršāk/drošāk ir referencēties uz unikāliem ID .. jo pretēji tev vienmēr jāzin divi parametri gan klienta id gan ordera id.. Bet tas nu tā.. man jau liekas ka viss ko vajag ir pie outputa ar php sataisīt tos 1,2,3 orderus (ja jau klientam tā gribās), bet slinkums diskutēt - fīča eksistē ;)
  14. Vo ieliec MaxRequestsPerChild 1000 vai 10000 (un pārstartē apachi).. paeksperimentē kā tev sanāk optimāli (ļoti mazu <100 nav vēlams likt) .. tas nozīmē pēc cik pieprasījumiem apaches child process pārstartēsies un sāks jaunu dzīvi.. 0 tavā gadijumā nozīmē ka process nepārstartējas nekad, kas nozīmē ja ir kāda atmiņas ēdoša lieta (parasti kāda php ekstensija) tad pēc kāda laiciņa apaches process ir apēdis ramu ka maz neliekas worker un prefork ir mehānismi (core moduļi) pēc kāda principa apache strādā - prefork ir vecs standarta mehānisms kur uz katru pieprasijumu tiek uzspawnots jauns apakšprocess un līdzko pieprasījums beidzās tas mirst (tas nodrošina to ka netiek apēsts rams - tai pašā laikā nav tas ātrākais) - izskatās ka tev ir worker - kas darbojas ar threadiem..
  15. Tas ka statisks teksts - pats par sevi.. runa vairāk gāja par: <? if($player[name]=="niks"):?> <? else:?> <? endif;?> vs <? if($player[name]=="niks") { ?> <? } else { ?> <? } ?> .. neesmu pārliecināts, ka pirmo pierakstu saprot visi (php) editori.. otro - noteikti.. Manuprāt diezgan neuztverami paliek ja sanāk nested (apakš) nosacījumi un tad galā aizvēršana: endif; endif; endif; endif; vs } } } }
  16. Tad nākošais jautājums? Tev apache ir ar worker vai prefork (kura versija?). Kāds ir MaxRequestsPerChild settings? Kā izpaužas "kapitāli lago" apache (httpd) process ir apēdis kaudzi ar ramu vai kā?
  17. Smukāk, manuprāt, ir izmantot if() { } else { } .. Kods imho ir labāk pārskatāms / saprotams un normālie editori māk taisīt code foldingu .. (par endif nemāku teikt, bet diezvai)
  18. *.frm faili satur tikai tabulas definīciju/struktūru.. dati tur nav, Innodb dati atrodas *.ibd failos (ja tiek izmantots file_per_table) vai arī ibdata klucī.. MyISAMI - .MYD ...
  19. Tajā tēmā ugunsmūra atslēgšana bija piedāvāta lai saprastu vai tas ir problēmas cēlonis (šaurais pudeles kakls).. Proti nejau pirmajās piecās sekundēs kāds pēkšņi "ielauzīsies" un izownos tavu nabaga Windozi.. Arī linuxiskajiem firewaliem ir problēmas (piemēram ar to pašu ip_conntrack) taču atsķirība ir tāda ka tās iestājas pie nedaudz lielāka konekciju/sesiju/lietotāju/trafika apjoma.. Pēc pieredzes varu teikt ka zināma projekta ietvaros nācās piemēram atteikties no Cisco PIX (kas ir uberduper enterprise firewall apliance) jo vienkārši nevilka.. un jāiztiek vienkārši ar routera ACL rulēm..
  20. Anyway tad tavs rewrite piemērs nestrādā jo tie RewriteCond !-f un !-d flagi nozīme ja neeksistē fails / ja neeksistē direktorija (un tie jāņem laukā).. Attiecīgi ja fails fiziski eksistēs tad rewrite nedarbojas.. A ja neeksistē tad vienkāršāka un krietni ātrāka direktīva ir ErrorDocument Bet tad ja ir slinkums nomovot webrootu uz tukšu direktoriju var izmantot Redirect http://httpd.apache.org/docs/2.0/mod/mod_alias.html#redirect Redirect / http://domain/site_closed.htm .. kaut kā tā..
  21. Ja vecs ljineks tad ipchains ja jaunāks tad iptables..
  22. Ir gan firewali nepieciešami .. gan arī problēmas iespējamas :)
  23. WTF? Rewrite uz 404?? Kaut ko trakāku ir grūti izdomāt =] Es teiktu: http://httpd.apache.org/docs/2.0/mod/core.html#errordocument ErrorDocument 404 /index.htm ErrorDocument 301 /index.htm
  24. Zināmu analoģiju var saskatīt ar web-pārlūkiem.. itkā ir kaut kāda zināma "valoda" vai standarti tad patiesībā katrs produkts ir ar niansēm un īsti vairs nevar teikt ka SQL arī Āfrikā ir SQL :) Līdz ar to lai kā piesietos pie vārdiem, manuprāt, vienkāršāk ir prasīt kā to izdarīt konkrētā vidē nevis "in general".. Esmu bakstījes ar kādiem 4-5 ( R )DBMS un visiem šī funkcionalitāte ir savādāka .. kapēc MS un Oracle savos produktos aizvien neievieš kaut ko "draudzīgāku" līdzīgi kā MySQL vai PgSQL izskaidrot nemāku..
  25. MS SQL kā reiz arī tā tikai dara.. tikai TOP taisa divreiz - no priekšas un pakaļas.. + vajag orderējamo lauku. Ja MySQL piemērs ir : SELECT * FROM table ORDER BY id ASC LIMIT 10,20 Tad MS SQL ir kaut kā šitā: select * from ( select top 10 * from ( select top 30 * FROM table ORDER BY id ASC ) order by id desc ) order by id ASC nu ceru ka asc/desc orderi nesajaucu vietām..
×
×
  • Create New...