Jump to content
php.lv forumi

F3llony

Reģistrētie lietotāji
  • Posts

    1,353
  • Joined

  • Last visited

Everything posted by F3llony

  1. Ja tāda ir tava izpratne par drošību un tiesībām, tev jau ir problēmas... Un home mapē neglabāt tāpēc, ka a: home mape ir paredzēta lietotāja datiem b: lai nebūtu problēmu ar permisiju menedžēšanu, kad jūzerim x jātiek jūzera y vhostā un c: tapēc, lai cilvēkiem nebūtu jātērē laiks meklējot kur katrs idiots ir nobāzis vhostus. d: ne visu mūžu izmantosi apači ar suexec. Un ja visu mūžu, tev atkal ir problēma.
  2. Izlasi vēlreiz ko pateicu. NDA nav šķerslis, NDA ir instruments, lai pasargātu sevi no negodīgas rīcības un atbaida tos, kam nelabi nodomi. Man stāv sastakoti NDA ko esmu parakstījis, dzīvot netraucē, naktīs sliktāk neguļu. Mani maz interesē, kā kurš hipsters izvēlas publicēt savas idejas. Bet piekrītu, ka NDA nav nepieciešams atklājot aptuvenu projekta domu. Neesmu teicis pretējo. Bet tiklīdz lieta aiziet līdz niansēm - ideju zagļi mums Latvijā netrūkst. To esmu sapratis pēc savas ļoti sāpīgās pieredzes. Ar pirkstiem nebakstīšu, bet ja būtu savu laiku pratis turēt muti un aizsargāt sevi ar NDA, varbūt šodien būtu sevi jau nodrošinājis uz vismaz pusi atlikušās dzīves. Atliek vien piebilst, ka normālās "ideju" valstīs - UK, DE, US utml. NDA ir biznesa prakses ikdiena. Tas tiek uztvērts kā pašsaprotama lieta. Bija gadījums, kad gribēju ar vienu Portugāļu cilvēku vienu projekta ideju apspriest, un par NDA pat neiedomājos. Cilvēks, kad sāku klāstīt otrā galā šokā - kā tu TĀ, man stāsti bez NDA? Tu TIK ĻOTI uzticies cilvēkiem? Lieki ko piebilst.
  3. Nekā. Viņš vienkārši tukši muld. Neatkarīgi, vai tu esi viens vai liela kompānija, paturēt savu ideju noslēpumā ir nepieciešams kaut vai tāpēc, lai citi, ar lielākiem resursiem nepārņemtu tavu ideju pirms vispār esi to palaidis "tautās" un tu par velti nebūtu iztērējis resursus. R&D->Dev->Closed prod->(Success||Failure)->PR&Advertising->Prod->(Success||Failure). Taisnība, ka ideja bez izpildījuma ir tikai daļa no vienādojuma. Taču, tu palaid garām vienu aspektu - izpildījums bez idejas arī nav nekas. Ja tev ir resursi izpildījumam, tev atliek vien iegūt ideju. Savukārt ideja ir daudz svarīgāka par izpildījumu, jo ideja ir daudz retāka un abstraktāka - pērtiķi var iemācīt žonglēt, taču nevar iemācīt izgudrot zāles pret vēzi. Tāpēc tavs princips ir mēsls, un realitātē IT industrijā nekad nestrādās. Tā nav elementārfizika, kur idejas implementāciju var paveikt saujiņa izredzēto. Nejauc kartupeļus ar ceptiem banāniem.
  4. Pašreizējā situācija - iespējams izmantot vai nu PHP iebūvēto autoload implementāciju, vai PSR-0 atbilstošu implementāciju. Pirmajā gadījumā ielādi veic core, pārbaudot katra faila, PATH un paplašinājuma kombināciju. Otrajā gadījumā pārbaudi pret eksistenci neveic (???) vai veic ar file_exists. Neveikšanu var izslēgt, ja ir a: vairāk par vienu autoload direktoriju b: vairāki paplašinājumi. Diskusija: <?php namespace MicroAva; $_CONFIG = array( 'cache' => array( 'autoload_cache'=> 10 // False or lifetime of cache. ) ); $_CONFIG['autoload']['paths'] = array( '/app/controllers/', '/app/models/', '/app/lib/', '/system/lib/' ); $_CONFIG['autoload']['extensions'] = array('.php'); $microava_autoload = function($class_name) use ($_CONFIG) { $class_file = false; $class_name = str_replace(array('\\','_'),DIRECTORY_SEPARATOR,$class_name); if($_CONFIG['cache']['autoload_cache'] == true){ $autoload_cache = \apc_fetch('microava_autoload'.$class_name); if($autoload_cache){ $class_file = $autoload_cache; } } if($class_file == false){ foreach($_CONFIG['autoload']['paths'] as $autoload_path){ foreach($_CONFIG['autoload']['extensions'] as $extension){ $file = realpath(__ROOT.$autoload_path).DIRECTORY_SEPARATOR.$class_name.$extension; if(file_exists($file)){ $class_file = $file; if($_CONFIG['cache']['autoload_cache'] == true){ \apc_store('microava_autoload'.$class_name,$class_file,$_CONFIG['cache']['autoload_cache']); } break; } } if($class_file){ break; } } } if($class_file){ require($class_file); }else{ throw new Exception('Class not found - '. $class_name); } }; spl_autoload_register($microava_autoload); Ar ieslēgtu cache: 0.00054192543029785 Ar izslēgtu cache: 0.00090503692626953 + ātrums, netiek aiztikts disks, kombinējot ar opkoda kešu aplikācija tiek veiksmīgi noparkota atmiņā. - ??? Domas?
  5. Back to the primary school... :D Esi palaidis garām visu NDA jēgu.
  6. Pirmkārt, no kurienes visi rauj, ka webi ir jāliek home vai pasarg print opt, vai vēl sazin kur? vhostiem jāstāv /var/www/domens.com. Punkts. Likums. Bez izņēmumiem. Visus kuri pārkāpj sist un dedzināt uz sārta. Labākajā gadījumā, aizliegt tuvoties web serverim pa 300 kilometriem. Otrkārt, Apachei vajag atļaut rakstīt tikai tur, kur tai jābūt atļaujai rakstīt. Manuāli 777 uz folderiem, kur nepieciešama atļauja rakstīt un viss. Globāli webroot mapei jābūt 755, rakstāmām direktorijām 777 vai 775 ja neprasa rakstīt 3rd parti optiem. Ja tavs šwebmasters ir tik slinks, ka nespēj salikt permisijas, uzraksti cronskriptu, kas permisijas saliek viņa vietā, tām direktorijām, kurām rakstīšana ir nepieciešama, ik pa kādam brīdim.
  7. Personiska rekomendācija - pirms ar kādu apspriest kaut ko, pa privāti - NDA. No exceptions. Neesi muļķis.
  8. F3llony

    Atalgojums

    Tam domāts linkedin... un geekli.st Šaubos. Slēdzam tēmu :D
  9. Runa nav par serveri, bet to, kā un cik ātri lapa nonāk līdz apmeklētājam. Par serveri runa būtu tad, ja šis paņēmiens tiktu adaptēts dinamiskai lapai pirms izvades, kur arī šis būtu ieguvums lai skipotu datu ieguves no avota un izvades loģiku. Un pat tad galvenais ieguvums būtu tas, ka saturs sēž pie gala lietotāja. Šādu pašu principu, tikai izmantojot servera puses kešošanu lai iegūtu kontroli pār saturu tu vari apskatīt Microava rūterī (/ui/index.php) Par keywords, šo biju palaidis garām. Taču, vienalga, eksistē ne tikai Google un mani māc subjektīvas šaubas par to, vai tik tiešām Google vispār neizmanto keywords.
  10. Nepiemirsti par gay on rails. Sorry, nenoturējos... :)
  11. Tas nav no-cache risinājums. Tas ir korekts cache risinājums...
  12. Tobiš visus pārlūka kešus mēs nafig izraujam ārā, lai lapa katru reizi vilktos no servera. What could possibly go wrong, huh? Autor,lūk risinājums visām tavām problēmām. Šis scenārijs atjaunos lapu katru reizi, kad mainījies tā saturs - t.i. modificēts fails, bet ja fails nebūs modificēts, tas tiks kešots pārlūka kešatmiņā un lapa (obviously) ielādēsies ar konstantu ātrumu. Ievieto to pirms jebkāda cita koda savā lapā. Visu pēc "saturs šeit" vari aizvākt. Pēcāk vari modificēt šo kodu, ja gadījumā izlemsi, ka vajag PHP lapu kas dinamiski ņem datus no datu bāzes. <?php $etag = md5_file(__FILE__); $etag_head = isset($_SERVER['HTTP_IF_NONE_MATCH']) ? trim($_SERVER['HTTP_IF_NONE_MATCH']) : false; $modified = getlastmod(); $mod_since = isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) ? $_SERVER['HTTP_IF_MODIFIED_SINCE'] : false; header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $modified) . ' GMT'); header('Etag: ' . $etag); header('Cache-Control: public'); if ((isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && empty($_SERVER['HTTP_IF_MODIFIED_SINCE']) == false && strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $modified) || $etag_head == $etag) { header("HTTP/1.1 304 Not Modified"); exit; } ?> Saturs šeit. Modificēts: <?php echo $_SERVER['HTTP_IF_MODIFIED_SINCE']; ?> Pašreiz: <?php echo time(); ?> Pilnīgas muļķības. Google interesē gan keywords, gan description. Taču - atslēgas vārdiem jābūt tiešā saistībā ar saturu, pretējā gadījumā keywords tiks ignorēti un sliktākajā gadījumā - kritīsies pozīcija meklētājā. Papildus - vari pielāgot lapas HTML lai atbilstu http://schema.org/. Tas, teorētiski, nedos neko daudz pozīcijas palielināšanai, taču padarīs lapu daudz draudzīgāku meklētajiem, kas gala beigās tomēr varētu novest pie pozīcijas kāpuma.
  13. To, ka pārliecināties vai viss tiešām darbojas un pārbaude vai serviss tiešām tiks updeitots bez downtime ir overkill tev gadījumā neiemācīja Čerāns? Jā, mans vecums ir 21 gads. Un? Ko tieši Tu ar šo gribēji pateikt? Vēlies pie manis strādāt? Sorry, nav brīvu vakanču. ;) Bet paldies par doktoru un profesoru. Uzskatīšu par komplimentu.
  14. Visas problēmas vispār nekas nekad neizķers. Laikam jānolaižas uz zemes un katrs teikums "jānostūlbo" līdz RTUšņiku līmenim - ar testiem es domāju pilnu, manuālu un automatizētu QA, ieskaitot bet ne tikai unit testēšanu. Tā, kā tas ir paredzēts. Tu domā, ka es tiešām esmu tik slims lai pa tiešo no testing vilktu uz proda bez pārbaudes? Nemaz nerunājot, ka vismaz es pirms proda esmu ieviesis vēl vienu pirmsprodukcijas testēšanu slēgtā, bet produkcijas-testa vidē. Bet ko nu par to. Gan jau te katram komentētājam ir sabūvēti zili brīnumi (lasīt filezilla).
  15. Bērni sanāk, sanāk, saklausās, kā strādā tie, kas ir par slinku lai čakarētos ar kā divi augstāk minētie. Uzbursim iztēlē pasaku ainu, kur developers X izstrādā sistēmu Y un pie sistēmas strādā viens pats. Izmaiņas un SQL "changesets" sistēmai Y Commit->push uz repozitoriju, post-update hooks apdeito attālināto testa vidi (brum), saģenerē dokumentācijas un vēl visādus random darbus. Testi. Lēmums par produkciju. Message queue izsūta produkcijai ziņu par atjauninājumu un veicamajiem darbiem. Produkcija novelk un uzliek izmaiņas, izpilda SQL changesets. Error (kam negadās)? Rollback kamēr tiek identificēta problēma, un atkārtoti izpildīti punkti 1,2,3,4,5. Developers dodas pēc kafijas. Tas viss tiek organizēts automatizēti. Nekādas čakarēšanās ar failiem, n-ssh/ftp savienojumiem un cita bulšita, pie tam - izslēdzot cilvēka kļūdu deployment ciklā. Lielisks piemērs - Microava (skatīt freimworku topiku). Development->Bibucket->post update hooks->uz remote kastes, kuru izmantoju deployment kontrolei - pulls, updeits un push uz appfog cloud mašīnu. Tas viss notiek automātiski, un bez manas līdzdarbības. Viss, kas prasās no manis - kods un savlaicīga izmaiņu pushošana uz repu. Es protams saprotu, ka te dažiem profiem patīk lauzt sev rokas un pēc tam rēķināt klientiem par to stundas, tā vietā lai rakstītu kodu, bet nu vismaz nevajadzētu publiski blamēt, ko? Nav runa par to, cik kur un kādi cilvēki pie kā strādā. Versiju kontrole nav tik vien kā versiju kontrole kaut kādā vāji interpretētā nozīmē. Šodien, 2012. gada 26. septembrī tā ir neatņemama darba cikla sastāvdaļa, kas atvieglo izstrādātāju darbu. Ja kāds izmanto repas tikai kaut kādai effin izmaiņu "logošanai" tikai tāpēc, lai viņa būtu - RTFM.
  16. F3llony

    Atalgojums

    :) Pietaupi savu pamatskolas "pierādi". Mans līmenis ir pietiekams, lai "dročītu" uz ko, kad un kā es vēlos un pilnīgi pietiekams, lai man nekas, nekad un nevienam nebūtu jāpierāda un kaut kādam interneta puišelim man pilnīgi noteikti atskaites nav jāsniedz. Se vietā.
  17. Jā, tas tiešām ir ērti. It īpaši, ja nezini, kas tas tāds software deployment un strādā viens pats ar lapelēm, kas sastāv no 5 failiem. 1. Netbeans prasa bloody ages lai novilktu remote sources uz lokālo kešu. 2. Cik jauki, ja tu veic lokālas izmaiņas un augšupielādē viņas pa virsu tām, kuras veicis cits cilvēks. (???) Bet nu es jau protams piekasos par sīkumiem... Buuuuu....
  18. Pievaldi sarkasmu. Eklipse, kas startējas pus minūti (pieņemu, ka diez vai esi sakabinājis ko nopietnu workspeisā, piemēram, shēmu pārlūkus utt) uz i5 ļoti labi norāda uz Tavām spējām. Ir tāds teiciens - meistaru pazīst pēc instrumentiem. Tapēc arī "negribēti" padomi. Lai kāds, pasarg print, nepadomā, ka tas, kas tev tur ir, ir normāli.
  19. G530 (LOL) ar 4G ram, Eclipse aptuveni 2-5 sekundes, ja lielāks workspeiss - ap 10, Netbeans aptuveni tik pat. Os protams Linux. Uz analogas kastes VS vispār lec kā suns pie kājas, aptuveni 2-5 sekundes max, CodeBlocks un NP++ neizmantoju. Iztīri kasti no mēsliem un attinstalē visu, ko neesi izmantojis pēdējo 2 mēnešu laikā.
  20. F3llony

    Atalgojums

    Izlasi vēlreiz, ko es uzrakstīju, un šoreiz tā kārtīgi.
  21. Pieņemu, ka ne ar ko, ja nu varbūt vienīgi tas, ka freims jau piedāvā noteiktu struktūru un neprasa pašam veidot arhitektūru. Cik esmu pētījis citus mikrofreimus (maz), tad liekas, ka visi kaut kā mīl iemest rokās detaļas no kalašņikova DIY taču kaut kur zaudē instrukciju, kā un galvenais, kāpēc. Tas gan ir mans neobjektīvais viedoklis. In general, šis ir vienkārši eksperiments. Gribu zināt, ko var labāk un kāpēc. Update: routēšana un PHP skati (patiks tiem, kam alerģija pret Smarty | arī man tāda ir)
  22. Ieleja, nezinu, kas tas tev par i5 tādā gadījumā un ko tu tur esi sakrāvis uz viņa...
  23. Nenāca miegs. http://adbucket.marolind.com/microava/src Ja vēlies ko ieteikt, izlasi TODO, šis tas jau ir paredzēts. Ko vēl neesmu izdomājis ir, vai šādam micro-stuff būtu vajadzīgs pilntiesīgs ORM's vai pietiktu ar vienkāršu vienas klases AR implementāciju. Varbūt kādam ir pa rokai single-class AR, kas šeit iederētos, pamatā CRUD PDO/MySQLi? Ģenerāldoma aiz šī ir, ka katru reizi, kad vajag kādu ūber-simplu lapeli, kur maksimums funkcionalitātes būtu ziņas un kontakti nebūtu vajadzība kurbulēt kādu no smagajiem freimworkiem, vai pasarg print, cms. Ak jā, eksistē arī intermediate keša slānis. Piemēram, ja Tev ir blogs, ieslēdz kešu, pie administrācijas, piemēram, pievienojot rakstu vai tml. iebaro viņu kešā uz kādu laiku un freims pēc URL izvilks viņu no keša skipojot visu routēšanas un izpildes loģiku. Vienīgi jāuzmanās nenokešot privātu outputu. ;)
×
×
  • Create New...