Jump to content
php.lv forumi

EdgarsK

Reģistrētie lietotāji
  • Posts

    621
  • Joined

  • Last visited

Posts posted by EdgarsK

  1. Man ir diezgan liela pieredze strādājot ar cilvēkiem kuri strādā no mājām, ir cilvēki kuri nespēj sevi kontrolēt un kam nepieciešama ofisa atmosfēra lai uzturētu entuziasmu un ir freelanceri kuri ir piekopuši prioritātes un spēj darbu padarīt neaktarīgi no atrašanās vietas.

     

    Lai arī kā, esmu saņēmis pāris e-pastus ar interesantiem kandidātiem, mums ir vairākas vakances tā kā lūdzu interesantus rakstīt.

  2. Sveiki php.lv

     

    Piedāvāju attālinātu darbu sadarbībā ar uzņēmumu anglijā. Uzņēmums veido internacionālu komandu kura strādā attālinātā režīmā no vairākām valstīm.

     

    Principā - sēdi mājās, kafejnīcā vai parkā un ej cauri task listei kura delīģēta Tev. Iekļaujies laikā un neklusē ja ir problēmas izpildīt darbu.

    Lai arī Latvijas darbiniekiem tiešā kontaktpersonā būšu es tomēr angļu valodas zināšanas - sarun līmenī ar kolēģiem ir nepieciešamas.

     

    Mums ir in house projekts kurš rakstīts no nulles sekojot symfony 2 arhitektūrai, nav nekas traks strādāt var.

     

    Interesentus rakstīt man [email protected] (Subject: DARBS) par summām vienosimies atsevišķi, atbilstoši Tavai kvalitātei, dodam priekšroku pašmotivētiem un pieredzējušies cilvēkiem kuri spēj strādāt komandā.

     

    Nepieciešamās zināšanas:

    GIT ; PHP ; MySQL ; Linux ; nGinx ; S3

     

    Paldies.

     

     

  3. Sveiks F3llony,

    paldies par ieteikumiem.

     

    Kā jau teicu šis ir mans pirmais lielais personīgais projekts ko grasos startēt tāpēc esmu uztraucies par katru sīkumu un varbūt esmu nedaudz uzvilcies haha.

     

    Neatbalstu mysql master/slave/multimaster setupus jo ir visādās šāizēs sanācis sēdēt, vienīgais par ko savā pieredzē esmu priecājies kā multi mysql instanci ir galera, bet tam vajag min 3 serverus. Long story short - galera ir sinhronizēts replication, kur katrs requests apceļo visus serverus pirms tiek apstiprināts, nevis tiek atsāts cerībā ka tas tiks replicēts. Perfekts piemērs ir Insert un uzreiz Select pēc ieraksta, galera atgriezīs, bet parasts replication ne.

     

    Kasspars - landing page ir pliks html fails tā kā ar to nebūs problēmas.

     

    Es tagad sākum domāt par to ko saki.

     

    Projekts ir UK based un melbourne ir diezgan liels UK data centrs bāzēts vairākās pilsētās, esmu darbinājis visādus giga projektus pie viņiem caur aģentūrām un viss ir bijis gludi.

     

    Codez - es ticu ka mans setup būs ok sākumam lai atspertos un vēlāk lai pāriet uz savu klusteri kur viss ir pārdomāts, bet tā kā ir neziņa par to kas tuvojas cenšos atsist visus bottleneckus.

  4. Projekts pamatsaknē ir soc tīkls + community networks.

    Lapa pieejama tikai reģistrētiem lietotājiem, ir tādi tūļi kā forums ; replika no stackoverflow ; messaging ; gallerijas (foto/youtube/vimeo) ; friendships ; followings ; kaut kas līdzīgs grupām draugos un vēl visādi sīkumi kas ir mazsvarīgi.

    Varbūt izklausās diezgan sekli, bet koncepts ko representē šī komūna ir unikāls, esam griezušies pie investoriem un viņi grib investēt, bet lai nepakļautu sevi lielam riskam, jo nekad šāda tipa koncepts nav startēts viņi vēlas lai mēs startējam kontrolētā environment un apkopojam rezultātus mēnesi pēc starta, ja publika ir atsaucīga viņi uzreiz investē un mēs varam domāt par labāku setup.

    Saprotu tavu komentāru foxsk8, mūsu gadijumā partneris kurš apkalpo portālu ar vairāk kā 30k apmeklētājiem dienā ir gatavs izlikt mūsu promo viņu lapā kā featured. Attiecīgi mums jābūt gataviem uzņemt vismaz 25% no viņu apmeklētājiem.

     

    Šobrīd es skatos uz šo visu šādi - nGinx ; Kohana ; fpm ; MariaDB ir visi lightweight, kas attiecīgi liek man domāt ka nebūtu jābūt tik sarežģīti uzcept šo servisu, bet tajā pašā laikā es gribu būt maksimāli drošs par visu.

     

    Varu nošērot nginx un fpm config ja ir vēlme lai izprastu kā esmu uzstādijis visu. Tikko pabeidzu stress testu, pret load balanceri ar 100k requestiem uz visiem unikālajiem linkiem, kopā 150, tātad kopā 15000 single requestiem tas tika executos aptuveni 40 secundēs kas man liek saprast ka aptuveni 350 vienlaicīgi requesti un serveris darbojas bez problēmām.

     

    Ja man ir 2 backend abiem ir 2GB ram ; 2000Ghz / 1cpu ; vai tas spēs izturēt random slodzi kas tiktu mesta tam pretīm, protams priekšā ir load balanceris ar round robin principu kur abiem ir vienāds weight. 

  5. Sveiki php.lv,

     

    šī mēnēsa beigās grasos startēt savu personīgo projektu, esmu strādājis nu jau vairāk kā gadu pie šī projekta un beidzot viss ir gatavs startēšanai. Tagad galvenais ir nenopūdelēt ar serveriem jo mēs startēsim ļoti apmeklētā lapā kā featured un cik partneris varēja no statistikas izvilkt mums ir jābūt gataviem apkalpot pāris tūkstošus dienā.

     

    Financiāli nevaru atļauties daudz, tāpēc startēju ar pamatpaku (ap 400 eirām), kur vēlāk būs investīcijas lai varētu upgreidot serverus, bet gribētos dzirdēt komentāris no Jūsu puses vai ar šo starta paku varēšu noturēties un kādi būtu ieteikumi lai attīstītu infrastruktūru ko veidoju.

     

    Tātad - projekts ir rakstīts kohanā, saslēgts ar vienu mysql datubāzi un kods ir diezgan lightweight. Atceros kad bija iespēja strādāt ar čaļiem no draugiem.lv daudz ko iemācijos, tāpēc tādas lietas kā lietotāju masīvus esmu nokešojis un katru reizi kad tiek atjaunota informācija datubāzē lietotājs kura dati tiek atjaunoti tiek pārkešots.

     

    Tātad kopā ir 4 server 

     

    manalapa.lv - pamatserveris ir load balanceris ar nginx upstream uz 2 backend serveriem, vēlāk man ir plāns pielikt priekšā HAproxy un laist caur to jo būtu vairāki load balanceri.

    Ši servers - Ubuntu 14.10 / 13000 Mhz ; 1G Ram ; 8G Hdd ; Nav pieslēgts VLAN ; Ir publiskā IP 

     

    backend-1.manalapa.lv un backend-2.manalapa.lv - nginx un php fpm; Ubuntu 14.10 ; 2000 Mhz ; 2G Ram ; 20 G hdd ; Ir publiskā IP ; ir pieslēgts VLAN ; loģiski mysql tiek laists caur VLAN.

     

    mysql.manalapa.lv - mariadb ; Ubuntu 14.10 ; 2000 Mhz ; 3G Ram ; 200 G Hdd; Ir pieslēgts VLAN ; Nav publiskā IP

     

    Abi backendi ir notūnēti ar domu ka būs 4gb ram tikko kā būs iespēja (huh)

     

    no file limits

    root hard nofile 40000

    root soft nofile 40000

    www-data hard nofile 40000

    www-data soft nofile 40000

     

    Sysctl tunning

    net.core.rmem_max = 16777216

    net.core.wmem_max = 16777216

    net.ipv4.tcp_rmem = 4096 87380 16777216

    net.ipv4.tcp_wmem = 4096 16384 16777216

    net.core.somaxconn = 4096

    net.core.netdev_max_backlog = 16384

    net.ipv4.tcp_max_syn_backlog = 8192

    net.ipv4.tcp_syncookies = 1

    net.ipv4.ip_local_port_range = 1024 65535

    net.ipv4.tcp_tw_recycle = 1

    net.ipv4.tcp_congestion_control = cubic

     

    Un visam pa virsu ir vēl UltraNAS 1TB hdd kas tiek pieslēgts abiem backendiem kā media storage priekš web uploads.

     

    Kopā man šis pasākums mēnesī izmaksā ap 400 eirām, pagaidām nevaru atļauties neko lielāku.

     

    Iemesls kāpēc rakstu - gribu justies droši startējot šo pasākumu. Esmu izgājis cauri desmitiem benchmarks etc un visi rezultāti nāk atpakaļ +- 500 requests / s uz nekešotām lapām un 1500 requests / s uz kešotām.

     

    Ah un par kešinu haha - sākumā ideja bija glabāt memcache, bet tā kā strādāju uz mac un negribēju p*sties ar memcache uztaisiju adapteri weblapai lai storo file cache. Tagad kad ir vairāki backendi vajag atsevišķu cache server, nepietiek naudas gan, tāpēc man bija doma pieslēgt redis kā file stream cache caur NAS ko slēgšu priekš uploadiem.

     

    Jebkādi ieteikumi / jautājumi būtu appriciated; ar serveriem ņemos tikai pāris gadus un noteikti ir ļot ļoti daudz lietas ko varētu ieteikt.

     

    Starpcitu rakstot šo tikko sapratu ka man tak abi backendi iet caur publiskajām IP, vajag pārlikt uz VLAN.

  6. nesaprotu smieties vai raudāt, tiešām darba devējam šoreiz ir krietni jāpadomā par budžetu, kā arī tam nabadziņam kuram ir pārāk daudz laika, ir jāsaprot ka vajag visu un vēl responsive. tā tev nav viena diena.

     

    pats atceros kā iesēdos vienā šādā haltūrā... bļin, būtu bijis gudrāks haha, bet nekas, no kļūdām cilvēks mācās un iesaka citam aizdomaties pirms lekt iekšā. Protams 300 evras izklausās fantastiski, tu vari nopirkt smēķi un pudeli, pat meiteni uz kino aizvest, bet vai pietiks paikai un vecākiem par īri samaksāt? 

  7. Sveiki PHP.LV

     

    Ir pagājuši teju 2 gadi kopš pārvācos uz UK, pats esmu programmētājs, Latvijā strādāju ar aģentūrām - Digibrand, McCANN, Efumo, White Digital, autors swedbank gudrie punkti lapai.

     

    Strādājot anglijā ir vairāk projekti nekā pats varu uzcept tāpēc meklēju divus programmētājus, konkrētajos porjektos tiek izmantots "Codeigniter" un "Magento" (atsevišķi).

     

    Darbs būtu attālināti, par summu vienosimies.

     

    Main things

    Jāmāk uzcept magento lapa

    Darboties ar magento templating ; plugin systems ; listeners ; zend etc

    Codeigniter būtu kā plus, bet galvenais kas mani interesē ir Magento.

     

     

    rakstat man privāti, vienosimies par darbu un apmaksu
  8. ja esi programmetajs kuram ir jadarbojas ar service side lietam tad tev butu jaizprot ka darbojas web serveris, ka darbojas os uz kuras darbojas web services, kas ir ram un ka tas tiek izmantos... varbut jau bik nost no temas, bet balstoties uz tavam atbildem ar pretjautjumu pret dotajam atbildem .. izklausies pec baiga pimpja .. 

     

    pameigini palaist sho .. mosh aizies

    (sync && echo 3 > /proc/sys/vm/drop_caches) > /dev/null && (sync && echo 3 | tee /proc/sys/vm/drop_caches) > /dev/null && (sync && echo 3 > /proc/sys/vm/drop_caches) > /dev/null
    
  9. Ja tas nav nopietns klients tad par to nebūtu pārlieku jāuztraucās, bet tomēr variācijas ko es ieteiktu

     

    a) izmanto cloud servisu

    b) izmanto vairākus vps kas pārklāj vajadzīgās vietas, uzstādi tur galera un cdn, izmanto min 2 load balancētus serverus pamatvalstī

    c) ej pie hostinga kompanijas kura automatiski sinhronize tavu vps pari geografiski svarigajam vietam, piemeram - es atrodos anglija un izmantoju Melbourne pakalpojumus, mans vps tiek sinhronizets tikai anglija starp vairakam hostinga kompanijas lokacijam.

  10. Few tips:

    1. tiek printēts media type "print" vai "all" ja nav norādīts "print" (php.lv piemērs)

    2. cooldown mainīgo iestati sekundēs cik lapa ģenerējas + 0.5 printēšanas laiks

    3. tiks lietots os default pārlūks (google piemers parada ka tu nelieto chrome)

    4. for some reason lapas fona krāsu nevar mainīt, tāpēc kad content beidzās un vēl ir blank space tur būs balts fons; 

    5. javascript strādās, tāpēc (tvnet piemērs) pārliecinies ka nav nekādi overflow popupi tur

    - piemērs no google: http://www.kohs.co.uk/devel/print-to-pdf/examples/example-google.pdf

    - piemērs no šī posta: http://www.kohs.co.uk/devel/print-to-pdf/examples/example-phplv.pdf

    - piemērs no tvnet: http://www.kohs.co.uk/devel/print-to-pdf/examples/example-tvnet.pdf

  11. +- 2 sekundes un ir gatavs

    personīgi uzturu python socket kurā palaižu kad vajag

    		public static function UrlToPdf($url, $target=null, $options=array(), $cooldown=2){
    			$request = '/usr/bin/xvfb-run --server-args="-screen 0, 1024x768x24" /usr/bin/wkhtmltopdf "%s" "%s"';
    			$args = '';
    			foreach($options as $name=>$value){
    				$args .= ($args?' ':'').$name.' '.$value;
    			}
    
    			$tmp = DOCROOT.'public/tmp/'.uniqid().'.'.uniqid();
    			while(is_file($tmp)){
    				$tmp = DOCROOT.'public/tmp/'.uniqid().'.'.uniqid();
    			}
    
    			$request = sprintf($request, $url, $tmp).($args?' '.$args:'');
    			$request .= '; chown spy:spy '.$tmp;
    			$request .= '; chmod 0777 '.$tmp;
    			$dump = Python_Api::Execute('127.0.0.1', $request);
    
    			sleep($cooldown);
    
    			if(!is_file($tmp)){
    				return '';
    			}
    			$data = file_get_contents($tmp);
    			@unlink($tmp);
    
    			if(!is_null($target)){
    				file_put_contents($target, $data);
    			}else{
    				return $data;
    			}
    		}
    
    

    un izsaucu ar 

    			$domain = 'http://www.bbc.co.uk';
    
    			$pdf = Python_Local::UrlToPdf($domain, null, array(
    				'-L' => 0,
    				'-T' => 0,
    				'-B' => 0,
    				'-R' => 0,
    				'--dpi' => 300,
    				'-s' => 'A4',
    				'-q' => ''
    			));
    
    			header("Content-type: application/pdf");
    			header("Content-Length: ".strlen($pdf));
    			header("Content-disposition: inline; filename=".get_domain_original_base_name($domain).'.pdf');
    			header("Accept-Ranges: ".strlen($pdf));
    			echo $pdf;
    			exit;
    
×
×
  • Create New...