Feb 26 2010

nginx triki

Kategorijas: IT, tech,

Tiem, kas tankā – Nginx ir webserveris, līdzīgi kā Apache, Microsoft IIS, Lighttpd utt, bet krietni ātrāks par iepriekšminētajiem un kas pietiekami būtiski – Nginx var darīt arī ko krietni vairāk, nekā parasts webserveris. Bet par to mazliet vēlāk.
Iesākumā gribu pieminēt interesantu lietu, ka lai arī Nginx principā ir zināms pietiekami sen, taču patieso uzvaras gājienu uzsāka pagājušā gadā – http://royal.pingdom.com/2010/01/22/internet-2009-in-numbers/ – popularitātes pieagums par 384.4% ir gana iespaidīgs.
Mana personīgā pieredze ar Nginx ir visai pozitīva. Iepriekšējais favorīts Lighttpd ir nolikts maliņā, kopš tika konstatēts, ka php fast-cgi režīmā uz lighta darbinās 5-10x lēnāk, nekā uz nginx. Nemaz jau nerunājot par visiem pārējiem bonusiem.

Labi, pietiek muldēt, jāķeras pie lietas:)
Bet lieta sekojoša – kādu brīdi atpakaļ gribējās pamēģināt tādu lietu, kā Amazon s3, jeb statisku failu hostēšanu kaut kur citur, nav pat obligāti šis s3, tā vietā varētu būt jebkas cits. Pamatojums? Trafiks. Tieši uz šiem statiskajiem failiem (img, css, js) tas saskrien visvairāk. Amazon tādā ziņā ir labs, ka mani faili tiek izmētāti pa visu pasauli uz n-tajiem serveriem un klients to dabū no sev tuvākā, ātrākā. Mīnuss – tas tomēr ir maksas pasākums. Lai arī ļoti minimālas maksas, taču maksas.
Domāts, darīts – piereģistrējos s3, sakopēju savus failus, salieku webā src=amazon, bet kaut kā nav īsti smuki – visādi sveši url figurē, plus tas viss salīdzinoši notiek diezgan lēni.

Un šajā brīdī atcerējos par nginx un tā iespējām:

location /s3redirect {
   rewrite ^/(s3redirect)/(.*)$ /s3/$2 break;
   proxy_pass http://alxf1lv.s3.amazonaws.com;
   proxy_redirect off;
   proxy_set_header Host alxf1lv.s3.amazonaws.com;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 }
 

Un vualā – lapā varu atbrīvoties no amazon linkiem, tā vietā lietojot it kā lokālu folderi /s3redirect. Rewrite paredzēts tam, lai pārrakstītu s3redirect par s3, jo tieši tādā folderī mani dati stāv uz amazon servera. Bet otra problēma saglabājas – lēnums. Jo katrs pieprasījums vienalga brien uz amazon. Galarezultātā pat sanāk lēnāk, nekā pa tiešo, jo pieprasījums vēl iziet lokālo stadiju:) Nu ko, turpinam rakt un pieslēdzam cache:

location /s3proxy {
   rewrite ^/(s3proxy)/(.*)$ /s3/$2 break;
   proxy_pass http://alxf1lv.s3.amazonaws.com;
   proxy_redirect off;
   proxy_set_header Host alxf1lv.s3.amazonaws.com;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

   proxy_cache_key         backend$request_uri;
   proxy_cache_valid       200  1h;
   proxy_cache_use_stale   error timeout invalid_header;
 }
 

+

html {
   ..........
   proxy_temp_path /usr/local/nginx/proxy_temp;
   proxy_cache_path  /usr/local/nginx/cache  levels=1:2   keys_zone=one:180m  max_size=500m;
}

Vēlamais efekts panākts – faili stāv uz amazon, taču servējas jau no lokālā dzelža, kas gan, protams, izklausās stulbi, jo faili jau sākotnēji var stāvēt lokāli, taču domājot plašāk, paveras pietiekami plašas scalability iespējas.

Jāteic gan, ka es neapstājos pie sasniegtā:)  Ideja “a kā būtu servēt no atmiņas” realizējās šādā nginx konfigurācijā:

location /s3 { 
    set $memcached_key $uri;                  
    memcached_pass     127.0.0.1:11211;    
    error_page 404 = @fetch;
}
location @fetch {    
    proxy_pass http://alxf1lv.s3.amazonaws.com;  
    proxy_redirect off;  
    proxy_set_header Host alxf1lv.s3.amazonaws.com;
    proxy_set_header X-Real-IP $remote_addr;  
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;   

   proxy_cache             one;  
   proxy_cache_key         backend$request_uri;
   proxy_cache_valid       200  1h;  
   proxy_cache_use_stale   error timeout invalid_header; 
}

+

html{
   .................
   proxy_temp_path /usr/local/nginx/proxy_temp;
   proxy_cache_path  /usr/local/nginx/cache  levels=1:2    keys_zone=one:180m  max_size=500m;
}

Jeb cilvēciskākā valodā – fails tiek servēts no memcache, ja tur nav – no proxy un ja nav arī tur – no amazon:) Jā, sviestaini, un jā, diez vai es to reāli izmantošu, bet kā neliels ieskats nginx iespējās, domāju, diezgan ok:)


Testi (100 secīgi pieprasījumi 73Kb lielam failam):

Pa tiešo no amazon s3          62.5762 sec
Redirect                       63.1520 sec
Redirect + proxy               1.071 sec
Redirect+ proxy + memcache     0.1760 sec

secinājumus varat izdarīt paši:)


Jāpiebilst gan, ka šādā konfigurācijā memcache māk tikai lasīt – dati pirms tam kaut kādā veidā tur ir jādabū iekšā. PHP piemērs par šo tēmu – kaut vai šeit beigās. Bet, jebkurā gadījumā, tas ir pietiekami būtisks mīnuss.

Bet varētu šo problēmu atrisināt arī savādāk – ar viena cita nginx moduļa palīdzību – NginxHttpMemcModule, kurš memcache māk arī rakstīt.

1 komentārs

Jan 30 2010

atkal jau par iPad

Kategorijas: tech, Tagi:

Vispirms jau – ļoti sen, ļoti, ļoti sen nekas nav rakstīts. Vainīgs, piedodiet, laiks tāds, ka galīgi nekam nav laika – rukā un rukā tik kā tāds “sabraukts ezītis”. 
Un solītā iPhone 3.x LV paka arī joprojām nav izlaista. Par to vēl vairāk vainīgs.. Ir gan pāris alternatīvās versijas, par ko man prieks (tiesa gan cik ātri uzliku pamēģināt, tikpat ātri arī noņēmu).
Mega projekts gada garumā arī nu ir beidzot galā, bet palaist gaisā nevaram pilnīgi triviālu un neprogozētu iemeslu dēļ, kurus neminēšu – nav nozīmes. 
Principā esmu atvērts arī darba piedāvājumiem, ja nu šo pārpratuma pēc lasa kāds darba devējs:) LinkedIn var atrast CV. Freelance projektus pats varu atrast, mani vairāk interesē pastāvīga nodarbe, bet tāda kur tiešām var darboties, kustināt pelēko masu, nevis atsēdēt:)
Labi, tas viss tā kā atkāpei, varētu tā kā pievērsties virsrakstā minētajai tēmai, bet īsi – man ir tikai viena lieta ko teikt:)

iPad. Ir jau daudz visa kā slikta sarakstīts par šo produktu – protams trūkumiem – gan dzelziskiem, gan softiskiem. Atkārtoties nav vēlmes. Bet ziniet, kādus gadus atpakaļ jau sēžot dīvānā bija vīzijas par šāda tipa iekārtu, kuru varētu izmantot kā papildinājumu lielajam kompim – respektīvi – ekrāns man klēpī, bet procesi tiek stumdīti lielajā kompī. Un man šķiet, ka šīs vīzijas varētu arī piepildīties – paņemam kādu no remote display softiem AppStorē (piemēram šo) un darbinam visu ko ienāk prātā. Uzreiz momentā atkrīt nepilnvērtīgā OS mīnusi, tāpat arī multitasking lietas utt. Papildus tam varam arī neslēgties pie lielā kompja un izmantot iPad visos tajos veidos, par ko stāstīja Džobss.
Lūk jums reāls iPad pielietojuma pluss. Ja remote display softs ir gana labi uztaisīts, tad ar darbošanās ērtumu problēmām nevajadzētu rasties.

Visādi citādi, ja man jautātu vai iPad ir revolucionārs produkts? Nē:) Nu vismaz ne tik revolucionārs, kā savulaik bija iPhone.
Vai tas ir tāds, kād gaidīju? Nu, taisnību sakot, man bija vienalga kāds viņš būs. Jāteic, ka visvairāk biju vīlies par OS, lai gan bija jau gaidāms, ka gaidāmo iekārtu darbinās iPhone OS. Pie tehniska rakstura nepilnībām iPhone jau ir pieradinājis un ar iPad nav vairs tas sāpes asums:)
Vai es pirktu? Kamēr nebiju līdz tām remote lietām aizdomājies, likās pilnīgi useless produkts. Tagad tāds 50/50.
Te gan vairāk piestāvētu jautājums – vai man vajag? Pilnīgi un noteikti ne:) 
Un ar šo arī varētu beigt, turpinājums komentāros:)

1 komentārs

Aug 28 2009

10.6

Kategorijas: tech, Tagi:,

zm5tJa man kāds pirms pāris gadiem teiktu, ka es aiztecēšu uz veikalu pēc OS un pie tam tas būs MacOS, viņš laikam izpelnītos kādu žestu deniņu rajonā:) Bet nu jā, tā šodien notika… Jau 5min pirms oficiālā tirgošanas sākuma šī kastīte ar maģisko nosaukumu “Mac OS X Snow Leopard” bija manos nagos. Labi, pietiek muldēt sentimentālus tekstus:) Kas ir pirmais, kas jādara uzliekot jaunu OS? Pareizi – testi:)

Dzelzis – iepriekšējās paaudzes iMac (Early 2008) 24″, 3.06 GHz, 500Gb HDD, 4Gb RAM, NVIDIA GeForce 8800 GS 512Mb

Atskaites punkts – vēl uz 10.5.6 versijas laisti Geekbench testi – 4124 punkti.

Tagad ar 10.6 :
32bitu režīmā (OS palaista uz 64bit) – 4312 punkti.
64bitu režīmā – 4748 (!!!) punkti.

Tātad pieaugums patiešām  ievērojams un kas dīvaini – pat sajūtams:)
Pagaidām ar to arī beigšu, jāskatās tālāk:)

2 komentāri

Aug 12 2009

29er

Kategorijas: tech, Tagi:

wheel_comparison_600Principā par 80% esmu izlēmis, ka pāris dienas atpakaļ nospertā velo vietā taga ņemšu tā saucamo MTB 29er. Kas ir 29er? Varētu teikt, ka pēdējais modes kliedziens:) Vismaz štatos un pamazām pārnāk arī uz Eiropu. It kā parasts MTB, bet ar lielākiem ratiem. Standartā ir 26″, šitiem 29″. Salīdzinājumam tūristiem, šosejniekiem 28″. Kā runā tie, kas brauc – līdzenāka gaita, lielāka kontrole pagriezienos, nobraucienos. Par uzbraucieniem gan man māc baža, ka varētu būt grūtāk, kaut gan teorētiskajos aprakstos ir teksti par lielāku riepas atbalsta laukumu un mazākām rata izslīdēšanas iespējām dubļainos uzbraucienos un tamlīdzīgos apstākļos.

Kāpēc es gribu 29er  – nu izlekt vajag, protams:) Bet ja nopietni – gribas pamēģināt ko jaunu un man kaut kā šķiet, ka šis varētu būt tas, ko vēlos. Bet es neesmu mēģinājis kā tas ir un komentāros vēl varat mēģināt mani atrunāt no šī soļa. Patiesībā droši vien būtu labi dzirdēt kādu reāla lietotāja atsauksmi, ja vien tādi vispār ir.
Protams, es apzinos niecīgo riepu, dakšu izvēli un droši vien vēl kaut ko, bet tas pagaidām liekas otršķirīgi.

Turpinājumā dažas bildes ieskatam (aci cenas pēc esmu uzmetis uz 1. eksemplāru – superior 829, pārējie bik tā kā par sālītu):

1superior09_829v

Picture 1 of 5


P.S.
Par gadījumu ar nosperšanu – atstāju gaišā dienas laikā, pietiekami civilizētā apkārtnē ričuku uz auto jumta saslēgtu ar veloturētāju (MontBlanc Discovery). Pats jau vien vainīgs, protams, pat nepadomāju, ka tas varētu būt risky.. Domas par velo upgrade gan bija jau gadus 2-3, bet žēl vienalga.

6 komentāri

Jun 21 2009

iPhone lietiņas

Kategorijas: iPhone,

Pirmkārt atbildēšu uz jautājumu, vai būs latviešu valoda arī 3. versijai:) Būs, bet es diemžēl tagad nevaru pateikt kad tieši. Sākumā gan likās, ka nu beidzot varētu mest mieru un neko vairs pie 3.0 nedarīt, jo nu jau arvien mazāk trūkstošo lietu paliek, bet nē, vēl mieru nemetīšu:) Un ne jau tikai interfeisa valodas pēc. Vēl joprojām ir galīgi kreisi ICU datumi, ar lock screen datumu arī nekas nav mainījies. Vēl es esmu nepatīkami pārsteigts, ka sāk parādīties softiski ierobežojumi 2G un 3G versijām, lai gan vienīgās dzelziskās atšķirības ir GPS moduļa esamībā. Respektīvi, 2G versijai nav pieejams ne MMS, ne Internet Tethering, kaut gan pieņemu, ka drīz parādīsies kāds patch jailbreikotajiem telefoniem:)

Diezgan bieži mēdzu izmantot arī video uzņemšanu (Cycorder), paretam arī SwirlyMMS. Ne tas būtiskākais moments, taču man patīk arī, ka varu pamainīt vizuālo paskatu – skinus (Winterboard) komplektā ar LiveClock un LiveWeather, kas uzreiz uz attiecīgajām ikonām parāda aktuālo laiku un temperatūru. Bez tam vecais 2G ir nācis no USA un ar LMT nedraudzējas:) Tātad iemeslu jailbreikam joprojām ir vairāk nekā pietiekami:)

Par 3.0. It kā jau viss visādos i-net resursos ir pateikts – visādas papildus iespējas, bet ņemot vērā dīvainos softiskos ierobežojumus 2G versijai, pārāk lielā sajūsmā neesmu:) Uzrāvos arī uz pārspīlēto stabilitātes optimismu, jeb novākto iespēju apturēt uzkārušos aplikāciju paturot 6sec home pogu. OK, tas bija kaut kāds softs ne no AppleStore, bet Cydia, bet nu uzkārās. Home pogas turēšana vairs nepalīdz. Labi, ka es zināju jauno kombināciju softu apturēšanai (iziešana uz poweroff dialogu un pēc tam 6sec home), bet nu neērti.
Patiesībā jau arī upgreids negāja baigi spoži. Nē, uzlikās viss čotka, norestrējās dati un viss srādāja smuki. Nākamais etaps bija atjaunojot Cydia softus ar APTBackup palīdzību – arī viss it kā smuki atjaunojās, bet viss šis sports beidzās ar mūžīgo restartu:) Tad kad kādas 3x pēc kārtas no šī burvīgā “brick” stāvokļa neizdevās ielīst DFU režīmā, likās jau, ka nu jau cauri ir, bet kaut kā beigās tomēr sanāca un viss čiki – tiku pie restore iespējas.

Kas attiecas uz 3G S, tad nenoliedzami tas ir no “gribu” sērijas:) Vairāk gan 3MPix kameras, video, kompasa dēļ, nevis tās spēļu platformas pēc.
Atgriežoties pie tulkošanas – priecē, ka šoreiz nav tādas strukturālas izmaiņas failu sistēmā, kādas tās bija pie pārejas uz 2.x versiju. Tātad teorētiski šoreiz vajadzētu būt mazliet vieglāk un mazāk arī visādu softu savietojamības problēmām.

51 komentāri

Nākamā lapa »